CSS

スポンサー広告

CSSでheight100%

2017/05/08

CSSでheightを100%にしたのにまったく高さが変化しなくて困ってしまうことってありませんか?

特にボックスを横にfloatで並べた時など同じ高さにしたくてもならないことがあります。

親要素の高さに合わせます。

parentという親のボックスにchildという子供のボックスを2つfloatで横に並べています。

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

HTMLの一部

<div class="parent">
<div class="child">
<p><code>このボックスは1行</code></p>
</div>

<div class="child">
<p><code>このボックスは1行</code></p>
<p><code>このボックスは2行</code></p>
<p><code>このボックスは3行</code></p>
</div>

CSSの一部

.parent{
	border:solid 1px #ff0000;
	width:600px;
}
.child{
	background-color:#66cc33;
	width:300px;
	float:left;
	height:100%;
}
		

親要素(赤枠)には高さが設定されていません。全体(子供の要素の周り)が赤枠で囲まれてもいません

parentにとっての子供の要素childはfloatしているので高さがわかりません。これはfloatの決め事です。そして、parentには高さが設定されていませんのそれぞれheightが100%に設定していますが、親要素に高さがないので自分の要素の高さしか確保できていません。

親要素に高さを設定する

親要素の高さを基準にheight100%であるなら親要素に高さを設定してやれば解決です。parentに高さ180pxを設定します。

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

CSSの一部

.parent{
	border:solid 1px #ff0000;
	width:600px;
	height:180px;
}
		

親要素(赤枠)には高さを設定しましたので自分自身のボックスの高さが確定し、ボックスの周りにボーダーが表示されました。さらに子供であるchildも親要素の高さの100%の高さが確保され塗りつぶされました。

これで解決です。と行きたいところですがうまくいかない場合もあります。子供の要素であるchildがfloatしていますので親要素自体は高さがなかった状態からheightを設定しました。ならばということで高さを設定すると子供の要素のheight:100%が生きてきました。

しかしながら子要素の内容が増えた場合も親要素の高さは180px固定ですので高さが親要素の高さに固定されてしまいます。

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

このボックスは4行

このボックスは5行

このボックスは6行

このボックスは7行

このボックスは8行

文字がはみ出してしまっています。

後続の要素ともうまくいっていないようですね。

やっぱり親要素の高さを設定しない。

親要素の高さがピクセル指定の決め打ちだったのでうまくいきませんでしたので高さを自動にしてみます。

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

このボックスは4行

このボックスは5行

このボックスは6行

このボックスは7行

このボックスは8行

CSSの一部

.parent{
	border:solid 1px #ff0000;
	width:600px;
	height:auto;
}
		

親要素にheight:autoを設定すると残念ながら1行の方のボックスは短くなってしまいました。これは親要素の高さがautoなのでautoに対して100%の高さになってしまいました。親要素も高さがなくなってしまいました。

結局ごまかす?

親要素の高さを確保します。親要素を子要素と同じ背景色にしてごまかします。

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

このボックスは4行

このボックスは5行

このボックスは6行

このボックスは7行

このボックスは8行

CSSの一部

.parent{
	border:solid 1px #ff0000;
	width:600px;
	overflow:hidden;
	background-color:#66cc33;
}
		

親要素にoverflow:hidden;することで親要素は高さを取得することができます。その親要素に子要素と同じ背景色で短い方のボックスがあたかも長い方のボックスと同じ高さかのように見せかけます。

別解 display:table display:table-cellで表として表示する

利用可能状況を見るにIE8以上でないと使えないようです。

CSSの一部

.child{
	border:1px solid #000000;
	width:298px;
	float:left;
	margin:10px;
}
		

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

このボックスは4行

このボックスは5行

このボックスは6行

このボックスは7行

このボックスは8行

背景色ならごまかせますが、ボーダーがあるとごまかしきれません。

まったく別の方法で解決します。displayで親要素にtableを設定し、子要素にdisplay:table-cellを設定します。こうすると親要素がtable要素であるかのように、子要素はtd要素であるかのように描画されます。注意点はtableと同じ扱いになるので幅が親要素の幅を基準として子要素の要素の幅によって按分されるということです。

このボックスは1行

このボックスは1行

このボックスは2行

このボックスは3行

このボックスは4行

このボックスは5行

このボックスは6行

このボックスは7行

このボックスは8行

CSSの一部

.parent{
	border:solid 1px #ff0000;
	width:600px;
	display:table;
	border-collapse:separate;
	border-spacing:10px;
}
.child{
	border:solid 1px #000000;
	display:table-cell;
}
		

まず4行目で親要素にdisplay:tableを設定します。そして子要素にdisplay:table-cellを設定します。これだけで勝手に横並びになって高さがそろいます。floatもしませんし、overflow:hiddenもしなくても親要素の高さが自動で子要素の大きい方に一致します。tableですから当たり前です。

残念なのがセルとセルの余白が自動です。(リセットCSSをお使いの場合セル間の隙間を取らない設定border-collapse:collapseが設定されている場合があります。ですから明示的にborder-collapse:separateにしてセル間を開けるにした方がいいでしょう。)border-spacing:10pxでセル間の余白を設定します。これは上、下、右、左一括指定です。個別に設定することも可能です。

子要素側は幅を設定していません。個別の幅にする場合は子要素にクラスを個別に振って指定します。指定されていない方は残りの幅が設定されます。

逆に子要素を均等幅にしたい場合は親要素に table-layout:fixedを設定するとうまくいきます。

rssfeed
コメント
2021年01月27日 13時04分
Lbgmoini さん
walgreens viagra <a href="http://genqpviag.com/#">buy viagra</a> viagra in india for men http://genqpviag.com/ - cheap canadian viagra ’
2021年02月02日 23時03分
Jdbxmoini さん
viagra india pharmacy <a href="http://llviabest.com/#">chdap viagra</a> viagra walmart http://llviabest.com/ - viagra cheap fast shipping ’
2021年02月05日 08時25分
Jbbvmoini さん
canadian prescription <a href="http://canadianpharmnorx.com/ ">international drug mart canadian pharmacy online store</a> Cialis Soft Tabs
2021年02月05日 22時16分
Jbnbexcug さん
Viagra Professional <a href="http://online21rxon.com/ ">pharmacy online mexico</a> online drugstore pharmacy
2021年02月06日 12時29分
FvfcHopic さん
kamagra vs viagra <a href="http://hopeviagrin.com/ ">buy generic viagra by phone in australia</a> buy viagra brisbane
2021年02月07日 02時54分
Fqhhmoini さん
canada viagra <a href="http://happyrxpharmacy21.com/ ">canada prescription drugs</a> pharmacy online drugstore
2021年02月07日 07時33分
Ahkdmoini さん
best canadian online pharmacy <a href="http://storerxpharmcanada.com/ ">Cialis Soft Tabs</a> muscle relaxant
2021年02月08日 06時49分
Aqcfabinciabe さん
cialisorigina <a href="http://cialisvja.com/ ">cialis australia</a> generic cialis 20 mg x 30
2021年02月08日 18時23分
NncsHopic さん
buying viagra at low cost <a href="http://lightvigra.com/ ">cheap viagra substitute</a> online exteze and viagra
2021年02月09日 09時24分
Kbcxtymn さん
prescription cost <a href="http://xuypharmacyonline.com/">order prescriptions online without doctor</a> buy prescription drugs online
2021年02月10日 03時03分
Lbsxmoini さん
canadian drugs online pharmacies <a href="https://ssviagriia.com/ ">buy viagra online</a> drugs from canada
2021年02月12日 09時40分
Jbbnmoini さん
cialis generico prezzi <a href="http://ljcialishe.com/ ">cialis uzivanie</a> cialis auf dauer schädlich
2021年02月12日 23時32分
Jbnvexcug さん
small cash loans no credit check nz <a href="http://samcash21.com/ ">1 hour deposit payday loans</a> is a balance transfer a cash advance
2021年02月14日 09時44分
Fqbbmoini さん
payday loan adverts banned <a href="http://ascashapply.com/ ">money loans in renton wa</a> cash back auto loans
2021年02月14日 14時33分
Ahbzmoini さん
cash advance fees westpac <a href="http://daymoneygo.com/ ">cash advance letter to boss</a> canada payday loans bad credit
2021年02月14日 15時41分
Abcfabinciabe さん
discount viagra usa <a href="http://viagriyvik.com/ ">order generic viagra online </a> viagra mexico pharmacy
2021年02月16日 17時51分
Kvaxtymn さん
easiest payday advances <a href="http://rirocash.com/ ">instant phone cash loan e signature</a> maximum cash advance on barclaycard
2021年02月16日 21時58分
NbnhHopic さん
buy cheap viagra online uk <a href="http://vigedon.com/ ">http://vigedon.com/ </a> viagra costa rica
2021年02月17日 23時51分
Labxmoini さん
is it safe to take generic cialis <a href="https://jecialisbn.com/ ">split cialis in half</a> viagra cialis levitra review
2021年03月01日 07時50分
FjjuHopic さん
watermelon natures viagra <a href="http://viagraonlinejc.com/ ">viagra prescription online </a> roman viagra review
2021年03月02日 17時51分
Kndntymn さん
cheap generic viagra <a href="http://viagratx.com/ ">viagra 100mg cost</a> can you drink alcohol with viagra
2021年03月03日 11時44分
NbmoHopic さん
cialis south africa <a href="https://buycialisxz.com/ ">cialis with dapoxetine cheap </a> mastercard generic cialis
2021年03月24日 03時48分
Jvqqmoini さん
https://dissertationahelp.com/ - dissertation consulting dissertations express <a href="http://dissertationahelp.com/ ">dissertation proposal writing service</a> help writing a dissertation
2021年03月26日 10時42分
Grvexcug さん
https://kloviagrli.com/ - will a walk-in clinic prescribe viagra https://vigedon.com/ - viagra benefits https://llecialisjaw.com/ - buy cialis without prescription https://jwcialislrt.com/ - definition cialis https://jecialisbn.com/ - cialis dosage for bph
2021年03月28日 09時26分
Lmoppmoini さん
http://essaywriteris.com/ - best essay writer write my college essay me <a href="http://essaywriteris.com/ ">write my essays</a> do my essay for me cheap
2021年03月31日 10時41分
Brfgtymn さん
https://ljcialishe.com/ - how long does it take for cialis to kick in https://cialisvja.com/ - cialis no prescription https://viagraonlinejc.com/ - online generic viagra https://viagratx.com/ - viagra effect on women https://buycialisxz.com/ - cialis heartburn
2021年04月02日 18時05分
Fbshmoini さん
https://thesisacloud.com/ - nursing thesis help in thesis writing <a href="http://thesisacloud.com/ ">thesis writing service uk</a> writing your thesis
2021年04月02日 23時56分
Abgcmoini さん
https://thesiswritingtob.com/ - writing phd thesis who to write a thesis <a href="http://thesiswritingtob.com/ ">thesis guidelines</a> thesis
2021年04月23日 04時02分
RfvbHopic さん
dapoxetine and cialis http://cileve.com/ us cialis online pharmacy
2021年04月24日 06時26分
Jbsdmoini さん
online pharmacy reviews https://onlinecanda21.com/ best canadian prescription prices
2021年04月25日 11時54分
LhdvHopic さん
what is super cialis, cialis dapoxetine http://asciled.com/ rx online cialis
2021年04月28日 07時50分
Abdgmoini さん
canadian rx pharmacy online http://canadianeve21.com/ Tenormin
2021年04月28日 22時38分
RfvbHopic さん
do have to have a prescription for cialis? https://cileve.com/ costco cialis
2021年04月29日 20時16分
Bbdftymn さん
viagra connect walgreens https://gensitecil.com/ viagra costs
2021年04月30日 02時38分
Gvdbexcug さん
tadalafil 40 mg india https://boxtadafil.com/ research chemicals tadalafil
2021年05月02日 07時34分
LhdvHopic さん
cialis mit paypal bezahlen http://asciled.com/ - generic cialis prices cheap cialis uk
2021年05月03日 20時29分
RebfHopic さん
cialis generic shopping http://rcialisgl.com/ canadian pharmacy no prescription generic cialis
2021年05月05日 02時23分
Jebgmoini さん
global pharmacy canada http://pharmacylo.com/ onlinepharmacytabs24 com
2021年05月06日 09時34分
LbsoHopic さん
buying cialis online https://ucialisdas.com/ cheap cialis 40 mg
2021年05月08日 03時02分
Lebnmoini さん
Ditropan http://xlnpharmacy.com/ Precose
2021年05月09日 08時13分
Bbshtymn さん
do you need a prescription for female viagra http://loxviagra.com/ female viagra effects
2021年05月09日 14時16分
Gtnbexcug さん
pfizer viagra price http://jokviagra.com/ what is viagra used for
2021年05月09日 14時52分
Anoomoini さん
que pasa si tomo viagra http://llviagra.com/ - venta viagra bogota can women take viagra 2012
2021年05月09日 22時59分
Fmrfmoini さん
buy cialis at walmart https://cialisee.com/ - generic cialis cheap brand cialis usa
2021年05月10日 19時29分
RebfHopic さん
cialis no prescription https://rcialisgl.com/ aussie cialis

コメントよろしくお願いします。

お名前
コメント