忍者ブログ

からすまる日誌 css

授業noteからcss部分を抜粋

序章(12) float(2)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

序章(12) float(2)

floatを使うときは幅を決める
  
div「あ」のブロックと「い」と「う」とあって、
「あ」と「い」を横に並べて
その下に「う」を置きたいとする
3つのdivはwrapというdivで包んである

親よりも大きくなった時下に落ちること
→カラム落ちという

.divにすると親のdivにもかかってしまう。

さてfloatすると浮いているので、あいたところに「う」が入り込もうとする
実際Elementsで確認すると、
「う」の領域は「あ」「い」にかぶっているのがわかる
ここで面白いのは、webは勝手に情報を落としたりしないので、
『領域はかぶって確保した』
『ただし文字をその下のレイヤーに置いたら見えないし
文字だけはかぶらないようにした』という挙動になる
 

vwという単位もある
ブラウザサイズの50%とかも指定できる。最近できた

.left{
background-color : #F77;
float : left;
width : 50vw;
}


floatは浮いているので、親要素に対しても
次の要素にも影響を与えてしまう
そういうわけで、floatの影響を受けたくないところで
クリアする必要がある

.bottom{
background-color : #77F;
clear : both;/*もうfloat終わりにしてくださいよ*/
}
 

float.css
  
@charset="UTF-8";
 
.wrap{
background-color : #cc6;
width : 500px;
}
 
.left{
background-color : #F77;
float : left;
width : 200px;
}
.right{
background-color : #7F7;
/*float : right;*/
/*width : 50%;*/
/*rightでもいいんだけどbottomをclearのほうがよろしい*/
}
.bottom{
background-color : #77F;
clear : both;/*もうfloat終わりにしてくださいよ*/
}
 

nav.cssに戻る

li{
background-color: #CCC;
width : 100px;
float : right;
}
 
liにclear.bothを入れる場所がない
そのあと<main>とかがあったとして、
そこに記述してもそこはよその家なのでうまくいかない

どうするか
→1.親要素の<ul>におまじないをかける

ul{
background-color : #EEE;
overflow : hidden;
}
 

子要素の中でclear.both(クリア・ボス)るか、
親要素でoverflow : hidden;(オーバーフロー・ヒドゥン)にするかは
「floatしない要素が、子要素の最後にあるかどうか」にかかっている

あればfloatしない子要素でクリアボス、
なければ親要素でオーバーフローヒドゥン

ちなみにfloat:right;を解除したいときは
clear:right;
とかもある
bothは両方になる
 

overflow : hidden;

基本的にWEBは情報を見せるもの
縦幅が指定してあっても文字数がオーバーしていたら
その下にはみ出て表示されるのが普通

それを敢えて、「はみだしたのは隠してください」というのがこの命令
なおfloat専用の命令ではない
 

2.clearfix

クリアフィックスというのを使う手もある
これも裏技的な


テキストを画像にまわりこみさせたいときは、
このfloatを使うしかないのでがんばって使えるようにしよう
PR

コメント

ただいまコメントを受けつけておりません。