CSS: div height not filling vertically
I have a div (in the attached example, .report
) which I would like divided into two divs ( .report-title
and .sections
). Both divs should fill the container div vertically, and I'm struggling to make this happen consistently . I don't want to stretch the container vertically; I want .report
to only be tall enough to contain the content, and for both of the contained divs to have an equal height. Neither div should have a set height or function as a table. The goal is to have the divs be responsively sized, except with .report
, .report-title
, and .section
s equally tall; they should all have the same height as whichever is taller at the moment.
What is currently happening looks something like this:
or this:
What I'd like to happen would look something like this:
or this:
I've tried setting heights to 100% and attempting some jQuery tricks, so far with no luck. What is the simplest solution here?
HTML:
<div class='report'>
<span class='report-title'>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lobortis elit non dui convallis, ut ornare est semper. Mauris eget libero vitae mi varius lobortis.
</span>
<span class='sections'>
<span class='report-section'>Date: 2013-05-07</span>
<span class='report-section'>Number: ABC123</span>
<span class='report-section'>Themes:
Chrome, Web Design, jQuery
</span>
<span class='report-section'>Sentiment: Positive</span>
<span class='report-section'>
URL:
<a href='http://api.jquery.com/Types/#Selector'>
http://api.jquery.com/Types/#Selector
</a>
</span> <!-- report-section -->
</span> <!-- sections -->
</div> <!-- report -->
CSS:
body {
height: 100%;
width: 100%;
}
.report {
border: 1px solid black;
text-align: left;
vertical-align: top;
display: inline-block;
height: 100%;
width: 90%;
}
.report-section {
background-color: lightgrey;
border-radius: 3px;
box-shadow: 0 0 5px black;
-moz-box-shadow: 0 0 5px black;
-webkit-box-shadow: 0 0 5px black;
display: inline-block;
margin-bottom: 10px;
margin-left: 10px;
padding: 5px;
text-align: left;
}
.report-title {
background-color: whitesmoke;
border-right: 1px solid black;
display: inline-block;
height: 100%;
padding: 5px;
font-size: 125%;
text-align: left;
text-decoration: bold;
width: 38%;
}
.sections {
background-color: blue;
display: inline-block;
float: right;
height: 100%;
padding-top: 5px;
padding-right: 10px;
width: 59%;
}
http://jsfiddle.net/dkeWs/
Demo Fiddle
html , body {
height: 100%;
width: 100%;
margin:0px;
padding:0px;
}
.report {
border: 1px solid black;
text-align: left;
vertical-align: top;
display: table;
width: 100%;
}
.report-section {
display:inline-block;
background-color: lightgrey;
border-radius: 3px;
box-shadow: 0 0 5px black;
-moz-box-shadow: 0 0 5px black;
-webkit-box-shadow: 0 0 5px black;
margin-bottom: 10px;
margin-left: 10px;
padding: 5px;
text-align: left;
}
.report-title {
background-color: whitesmoke;
border-right: 1px solid black;
display: table-cell;
padding-top: 5px;
padding-left:2px;
font-size: 125%;
text-decoration: bold;
min-width: 50%
}
.sections {
background-color: blue;
display: table-cell;
padding-top: 5px;
width: 50%;
}
You set padding-right:10px
to the right div which pushed it down even if it was floated because the total width exeeded the space.
Without using display:table;
and display:table-cell
:
Updated: Click to see this fiddle
Apply float:left; and reduce width:36%; for .report-title
Change your css as follow:
Here is Demo
html , body {
height: 100%;
width: 100%;
margin:0px;
padding:0px;
}
.report {
border: 1px solid black;
text-align: left;
vertical-align: top;
display: inline-block;
height: 100%;
width: 100%;
}
.report-section {
background-color: lightgrey;
border-radius: 3px;
box-shadow: 0 0 5px black;
-moz-box-shadow: 0 0 5px black;
-webkit-box-shadow: 0 0 5px black;
display: inline-block;
margin-bottom: 10px;
margin-left: 10px;
text-align: left;
}
.report-title {
background-color: whitesmoke;
border-right: 1px solid black;
display: inline-block;
height: 100%;
font-size: 125%;
text-align: left;
text-decoration: bold;
width: 38%;
}
.sections {
background-color: blue;
display: inline-block;
float: right;
height: 100%;
width: 59%;
}
链接地址: http://www.djcxy.com/p/30008.html
上一篇: git clone后直接显示修改的文件
下一篇: CSS:div高度不垂直填充