まずは、添付画像を見ながら質問を見てほしいのですが、画像のような状況からwebブラウザのウィンドウ右端を掴み、幅を縮小していくと、緑部左端がメニューバーに当たると、青部領域が縮んで行き、メニューバーの左端がウィンドウの左端に当たるあたりから、緑領域および文字サイズブロックが隠れていき、ウィンドウの右端がメニューバーの右端を過ぎたあたりからコンテンツが縮小していく動きになるのですが、これをウィンドウ右端から縮小していったときに青部は隠れていってもよく、緑部及び文字サイズブロックは隠れずに縮小して行き、同じくメニューバーおよび会社ロゴ、所在地ブロックも隠れずに縮小させるには、どのようにすればよいのでしょうか?
コーディングは全部は載せられないので、だいたいこんな感じで作っているというぐらいを記載します。テキストエディタ等で見てほしいです。
html
<body>
<div class="out-wrapper-container">
<div class="out-wrapper-left"></div>
<div class="wrapper" >
<header class="header-container">
<div class="h-left">
<div id="image1"></div>
</div>
<div class="h-center">
<div id="image2"></div>
<div id="image3"></div>
</div>
<div class="h-right">
<address class="char-no-wrap">
<div><span class="font-adapt1">所在地 : </span><span class="post font-adapt2">***-****</span></div>
<div><span class="font-adapt2">*******</span></div>
<div>
<span class="font-adapt1">受付時間 : </span><span class="colored">AM9:00〜PM5:00</span>
<span class="tel colored right">***-***-****</span>
</div>
<div id="sns">
<ul>
省略
</ul>
</div>
</address>
</div>
</header>
<div class="main">
<div class="nav-fix-pos">
<nav id="menubar">
<ul>
省略
</ul>
</nav>
</div>
</div>
</div>
<div class="out-wrapper-right">
<!--文字サイズ変更ボタン-->
<div id="fsize">
<p>文字サイズ</p>
<ul>
省略
</ul>
</div>
</div>
</div>
</body>
</html>
css
******ここから*********
/*サイトの設定*/
ul {list-style-type: none;}
/* out-wrapperコンテナ */
.out-wrapper-container {
display:flex;
justify-content: center;
}
.out-wrapper-left{
width:11vmin;
background-color: blue;
}
.out-wrapper-right{
width:11vmin;
background-color: green;
}
/*文字サイズ変更ボタン*/
/*out-wrapper-rightボタンブロック*/
#fsize {
/*out-wrapper-right中央配置*/
margin-right: auto;
margin-left: auto;
width: 11vmin; /*ブロック幅*/
height:5vmin;
background: #fff; /*背景色*/
box-shadow: 0 0 0.8vmin rgba(0,0,0,0.2);
padding: 1vmin 0; /*上下、左右へのボックス内の余白*/;
}
/*wrapperとout-wrapperがある)*/
/* そのうちのwrapperヘッダー部 */
header {
opacity: 0.7;
height: 15vmin;
width:115vmin;
margin-left: auto;
margin-right: auto;
z-index:10;
}
/*wrapperヘッダー部のcontainer*/
header.header-container {
display:flex;
align-items: center;
flex-wrap: nowrap;
}
/*ヘッダー部位置*/
header .h-left{
display:flex;
align-items: center;
height: 15vmin;
width: 20%;
background:orange;
flex-wrap: nowrap;
}
header .h-center{
display:flex;
align-items:center;
height: 15vmin;
width: 50%;
background:yellow;
flex-wrap: nowrap;
}
header .h-right{
height: 15vmin;
margin-left: auto;
margin-right: auto;
width: 30%;
z-index: 20;
position: relative;
}
/*ヘッダー部の中身left*/
.h-left #image1{
height: 100%;
width: 100%;
background-size: contain;
background-position:center;
background-image:url("../images/会社ロゴ字.png");
background-repeat: no-repeat;
}
/*ヘッダー部の中身center*/
.h-center #image2{
省略
}
.h-center #image3{
省略
/*ヘッダー部の中身right*/
/*address部*/
.h-right address {
display:flex;
flex-wrap:nowrap;
flex-direction: column;
box-sizing: border-box;
height: 15vmin;
width: 100%;
font-style: normal;
line-height: 1.5; /*行間を少し狭く*/
}
/*SNSのリンクボタン集*/
#sns{
margin-top: auto;
}
.h-right #sns{
省略
}
#sns ul {
省略
}
li#Instagram a{
省略
}
li#Line a{
省略
}
li#Facebook a{
省略
}
/*メインメニュー*/
/*メニューブロックの設定*/
#menubar {
margin: 20px auto 20px;
height: 45px;
}
ul{
display:flex;
padding:40px;
}
/*メニュー1個あたりの設定*/
#menubar li {
width: 16.66%;
line-height: 1; /*行間を少しだけ狭く*/
}
#menubar li a {
text-decoration: none;display: block;
text-align: center;
height: 30px; /*高さ*/
padding-top: 15px; /*上に追加する余白*/
color: #fff; /*文字色*/
background: #779eec; /*背景色*/
}
No.1ベストアンサー
- 回答日時:
こんばんは
省略もあって細かなところがよくわかりませんけれど、左、中央、右の3つのブロックがあって、ウィンドウの幅が狭くなるにつれて、左が消え、中央と右は必ず表示されるように幅を縮小。
ということでしょうか?
単純に3つのブロックのみにして、
・最大幅はそれぞれ11、115、11vmin
(vminにしている意図もわかりませんが、とりあえずそのまま)
・幅が狭くなったら左が最初に狭くなって幅0になる
・それ以後は、中央、右が縮小される
という、一例です。
※ 中央と右の縮小率を変えたい場合は flex-shrink を指定することで可能です。
※ 各ブロック内の要素の幅等は%で(あるいは、同様にflexで、shrinkを)指定するようにしておけば良いでしょう。
内容がよくわかりませんので、雰囲気としてのご参考までの例です。
各ブロックには識別できるように色塗りをしてあります。
※ 要素幅だけの調整なので、表示内容によっては折り返しが発生して、レイアウトが乱れる可能性がありそうに思われます。
※ レイアウト全体を同比率のまま縮小したいのなら、transform scale などで、全体を縮小する方が良いのかもしれませんね。
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.wrapper {
width: 137vmin;
max-width: 100%;
height: 15vmin;
margin: 0 auto;
display:flex;
flex-direction: row-reverse;
background-color: blue;
}
.wrapper > div {
width: 126vmin;
max-width: 100%;
height: 100%;
display: flex;
}
.center {
width: 115vmin;
height: 100%;
background-color: lightyellow;
}
.right{
width:11vmin;
height: 100%;
color: white;
background-color: green;
}
</style>
</head>
<body>
<div class="wrapper">
<div>
<div class="center">
中央部
</div>
<div class="right">
右端部
</div>
</div>
</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS初心者です。わかる方教えてください。 3 2023/09/08 22:04
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS css初心者 フレックスボックスの適用を一部適用除外したいですが方法が分かりません。 2 2023/11/27 00:13
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS ボックスを中央配置したいです。 2 2023/09/19 17:09
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- JavaScript 【JavaScript】検索がヒットした場合、プルダウンをオープンで表示させる方法 2 2023/09/06 14:02
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
HTMLとJavaScriptで作ったタイマーアプリで時間分の設定方法がわからない
JavaScript
-
HTMLとJavaScriptで作ったタイマーアプリが正常に動作しない
JavaScript
-
大至急。webのシングルページを作ろうと考え、イラレでデザインをしました。 それからの手順で悩んでる
HTML・CSS
-
-
4
コードレビューをお願いします。
JavaScript
-
5
1ページに全部載せた方がseo的にいい?
SEO
-
6
かっこいいウェブを作るテク
HTML・CSS
-
7
すいません HTMLです この画像をHTML、(もしくはCSS)で表すにはどうすれば良いですか? 教
HTML・CSS
-
8
HTMLでstyleを指定するフォームの作り方
HTML・CSS
-
9
HTMLとJavaScriptで作った表示して検索するWebアプリが正常に動かない
JavaScript
-
10
HTMLで作った時報アプリが動きません
JavaScript
-
11
デジタルブックを自分のウェブサイトに設置する方法を教えて
オープンソース
-
12
ワードプレスインストールできない
オープンソース
-
13
Javaって使いますか、もう古いですか?C++とどっちがいいですか?分析でC++使う授業ありましたけ
C言語・C++・C#
-
14
CSSで謎の現象
HTML・CSS
-
15
CSS初心者です。わかる方教えてください。
HTML・CSS
-
16
align-itemsの使い方。本が間違っている?
HTML・CSS
-
17
web制作をしているのですが、ページ内リンクを押すとidを指定しているブロックより上の方に飛んでしま
HTML・CSS
-
18
numbersで累計を計算するには
会計ソフト・業務用ソフト
-
19
HTMLのbody内に<style>~</style>定義は作法的にOKでしょうか?
HTML・CSS
-
20
ホームページの事でおしえてください
CGI
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
CSSがなぜかfont-sizeだけ効か...
-
CSSでボックスのheightが0になる
-
Flexslider2のカーセルスライダ...
-
CSSの角丸での質問です。 今、C...
-
スクロールボックスを中央に配...
-
CSS、width100%でもできる余白
-
widthやheightの数値に単位(px...
-
ul liのclass指定について
-
FFにおけるDIVタグ間の隙間につ...
-
safariやFirefoxで右のカラムが...
-
CSSで画像の配置について
-
背景が下まで表示されないんです。
-
Firefoxで一番下のstickyが上に...
-
CSSで背景画像を一番下にもって...
-
li 黒丸含んで移動する方法
-
html5 2段組で行頭を揃える方法
-
CSSでborderの長さを指定、また...
-
スタイルシートで画面を縦に2...
-
CSS windowsIE 最後の文字が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
css初心者 フレックスボックス...
-
form input テキストを上下中央...
-
<div>と<div>の間の10px程の...
-
CSSがなぜかfont-sizeだけ効か...
-
divで囲まれたpaddingの指定を...
-
表示倍率を変えるとレイアウト...
-
画像イメージの上下左右、欲し...
-
CSS、width100%でもできる余白
-
cssで中央寄せ
-
CSS:animation開始位置の設定
-
スクロールボックスを中央に配...
-
CSSで背景画像を一番下にもって...
-
【CSS】ヘッダーの高さが不明の...
-
初心者html・CSS ウィンドウを...
-
footer を横幅いっぱいに広げる...
-
CSSで指定した背景画像にリンク...
-
div領域をウインドウサイズに合...
-
W3Cのソースコードの検証サービ...
おすすめ情報