我有一个像这样的简单HTML模板
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<style>
*{
margin:0px;
padding:0px;
}
<!--Resetter rules for browsers-->
#bodyContainer {
border:green 2px solid;
}
body {
border:black 2px solid;
background-color : grey;
padding:5px;
}
#header {
background-color : red;
width:70%;
height:80px;
border:black 2px solid;
padding:5px;
}
#header1 {
display:inline-block;
width:50%;
border:green 2px solid;
}
#header2 {
display:inline-block;
width:50%;
border:green 2px solid;
}
</style>
</head>
<body>
<div id="bodyContainer">
<div id="header">
<div id="header1"><h1>Welcome</h1></div>
<div id="header2"><h1>You Get to choose better !! </h1></div>
</div>
<div id="content">
<div id="contentHeader">
<p>You Select ... We Serve </p>
</div>
<div id="nav">
<ul id="navmenu">
<li><a href="#">Home</a></li>
<li><a href="#">Electronics</a></li>
<li><a href="#">Fashions</a></li>
</ul>
</div>
</div>
<div id="sidebar">
</div>
<div id="footer">
<p>WebApp Version Numbered v1.0. All rights Reserved. </p>
</div>
</div>
</body>
</html>
但是当我将id为header1
和header2
的div的宽度设置为50%时,它们往往不会占用ID为header
的父容器div的整个空间。水平并排排列。为什么会这样?
我在这里错过了什么吗?请解释基础知识,因为我是HTML和CSS的新手。
答案 0 :(得分:3)
试试这个..
#header {
background-color: red;
width: 70%;
height: 100%;
border: black 2px solid;
padding: 5px;
}
U可能会正确回应。
答案 1 :(得分:2)
首先从padding
移除#header
,然后为2px
和#header1
提供#header2
边框,将其移除border: 2px solid green;
另一件事是display:inline-block
在html中占用了空格。因此,请删除div #header1
和#header2
之间的空格。
赞:<div id="header1"><h1>Welcome</h1></div><div id="header2"><h1>You Get to choose better !! </h1></div>
这里我也给vertical-align:top
垂直顶部。
*{
margin:0px;
padding:0px;
}
<!--Resetter rules for browsers-->
#bodyContainer {
border:green 2px solid;
}
body {
border:black 2px solid;
background-color : grey;
padding:5px;
}
#header {
background-color : red;
width:70%;
height:80px;
border:black 2px solid;
}
#header1 {
display:inline-block;
width:50%;
vertical-align: top;
}
#header2 {
display:inline-block;
width:50%;
vertical-align: top;
}
&#13;
<div id="bodyContainer">
<div id="header">
<div id="header1"><h1>Welcome</h1></div><div id="header2"><h1>You Get to choose better !! </h1></div>
</div>
<div id="content">
<div id="contentHeader">
<p>You Select ... We Serve </p>
</div>
<div id="nav">
<ul id="navmenu">
<li><a href="#">Home</a></li>
<li><a href="#">Electronics</a></li>
<li><a href="#">Fashions</a></li>
</ul>
</div>
</div>
<div id="sidebar">
</div>
<div id="footer">
<p>WebApp Version Numbered v1.0. All rights Reserved. </p>
</div>
</div>
&#13;
检查Fiddle.
答案 2 :(得分:2)
在您的示例中,存在两个问题:
第一个,你为每个边框声明了50% + 4px
边框,这些标题框总共有width > 100%
(父级),它们不能并排。
第二个,如果删除边框,它们之间是一个空格(由代码中的换行符引起)。
您可以删除它们之间的白色字符
<div id=header1>content</div><div id=header2>content></div>
或使用float
代替inline-block
。
当你对这两个元素使用float: left
时,不要忘记在之后清除,例如。将overflow: hidden
添加到#header
。
#header {overflow: hidden}
#header1, #header2 {float: left; border: 0; width: 50%;} /* no display: inline-block needed */
答案 3 :(得分:1)
#header1 {
display:inline-block;
width:49%;
border:green 2px solid;
float: left;}
#header2 {
display:inline-block;
width:49%;
border:green 2px solid;float: right }
宽度应为49%,因为边框也设置为2 px,因此50%将div设置为低于另一个,任何小于50%的值都可以实现。
答案 4 :(得分:1)
以下是fiddle
RCurl