レスポンシブデザインにも挑戦しています。
とはいえ1から書いてと言われたらいささか辛いかもしれません。
というわけで備忘録です。 今回はレスポンシブ!
目的
画面の横幅があるときにはタイルデザインに、狭いときには1カラムデザインに切り替えるレスポンシブなCSS!!
sample.html
<!DOCTYPE html> <html> <head> <meta content="IE=edge" http-equiv="X-UA-Compatible" /> <link href="./samplecss.css" rel="stylesheet" type="text/css" /> <title>sumple</title> </head> <body> <div id="container"> <header>ヘッダーだよ</header> <main>メインだよ <div> <div id="topic-1"> <label>タイトルA</label> <div id="m">aaaaaa<br>あいうえお</div> </div> <div id="topic-2"> <label>タイトルB</label> <div id="m">bbbbbb<br>あいうえお</div> </div> <div id="topic-3"> <label>タイトルC</label> <div id="m">cccccc<br>あいうえお</div> </div> <div id="topic-4"> <label>タイトルD</label> <div id="m">dddddd<br>あいうえお</div> </div> <div id="topic-5"> <label>タイトルE</label> <div id="m">eeeeee<br>あいうえお</div> </div> <div id="topic-6"> <label>タイトルF</label> <div id="m">ffffff<br>あいうえお</div> </div> <div id="topic-7"> <label>タイトルG</label> <div id="m">gggggg<br>あいうえお</div> </div> <div id="topic-8"> <label>タイトルH</label> <div id="m">hhhhhh<br>あいうえお</div> </div> </div> </main> <footer>フッターだよ</footer> </div> </body> </html> |
samplecss.css
/*横幅500px以上の時のスタイル*/ @media screen and (min-width: 500px){ * { margin: 0px; padding: 0px; } html { height: 100%; background-color: #AACCCC; } body { height: 100%; } #container{ /* container以下の要素を横方向中央寄せする */ margin: 0 auto; position: relative; height: auto; min-height: 100%; width:570px; /* containerの背景色とmainの背景色は合わせておく */ background-color: #FFAAAA; } header{ width:570px; background-color: #9999CC; } main{ display: block; width:570px; min-height: 600px; /* footerの高さ分padding-bottomを設定する */ padding-bottom: 30px; /* containerの背景色とmainの背景色は合わせておく */ background-color: #FFAAAA; } footer { /* meinで設定したpadding-bottom分の高さを設定する */ height: 30px; position: absolute; bottom: 0; width: 570px; background-color: #AAFFAA; } div[id*="topic"]{ width: 150px; height: 150px; padding: 10px; margin: 10px; float: left; background-color: #AAFFAA; } div[id*="topic"]:first-child{ width: 340px; float: left; } div[id*="topic"]:nth-child(2n){ background-color: #EE99EE; } div[id*="topic"] label{ font-size: 30px; } div[id*="topic"]:first-child label{ font-size: 40px; } } /*横幅500px未満の時のスタイル*/ @media screen and (max-width: 499px){ * { margin: 0px; padding: 0px; } html { height: 100%; background-color: #AACCCC; } body { height: 100%; } #container{ position: relative; height: auto; min-height: 100%; width:auto; /* containerの背景色とmainの背景色は合わせておく */ background-color: #FFAA00; } header{ width:auto; background-color: #9999CC; } main{ display: block; width:auto; /* footerの高さ分padding-bottomを設定する */ padding-bottom: 30px; /* containerの背景色とmainの背景色は合わせておく */ background-color: #FFAA00; } footer { /* meinで設定したpadding-bottom分の高さを設定する */ height: 30px; position: absolute; bottom: 0; width: 100%; background-color: #AAFFAA; } div[id*="topic"]{ width: auto; padding: 5px; margin: 5px; background-color: #AAFFAA; } div[id*="topic"] #m{ display: none; /*visibility:hidden;*/ } div[id*="topic"] label{ font-size: 40px; } div[id*="topic"]:nth-child(2n){ background-color: #EE99EE; } } |
表示例1
画面の幅が広いときはこんなタイルデザインになります。解説
- 一つ一つはdivタグで囲み、float: left;を指定する。
⇒要素が右に連なるようになる! -
div[id*="topic"]:first-child{
width: 340px;
float: left;
}
表示例2
画面の幅が狭いときは、1カラムデザインになります。画面の幅が狭いので、タイトルだけを表示します。
ポイント!
メディアクエリを指定すること!
@media screen and (min-width: 500px){ [各要素を書いていく] } @media screen and (max-width: 499px){ [各要素を書いていく] } |
ご参考になれば幸いです。
適用は自己責任です。
0 件のコメント:
コメントを投稿