我是CSS的新手,已经坐在这里几个小时,试图弄清楚为什么我的中间部分没有显示为列。我搜索网络显然没有成功。我尝试过重新放置div的位置,清除所有内容并将耶稣从所有内容中移出。它一定很简单,但是我不知道是什么。有人可以帮忙吗?

对于不合适的代码,我深表歉意,但是我还没有上传任何东西。

提前致谢

的HTML
    

<head><style type="text/css" media="all">@import "css/master.css";</style></head>

<body>
<div id="page-container">
    <!-- RIGHT HAND PAGE -->
    <div id="navbar">NavBar</div>
    <div id="mediaplayer">Meda Player</div>
    <div id="sightings">Sightings</div>
    <div id="blogheader">Blog Header</div>
    <div id="sociallinks">Social Links</div>
    <!-- LEFT HAND PAGE -->
    <div id="logo">Logo</div>
    <div id="mainpic">MainPic</div>
    <!-- CENTRE PAGE -->
    <div id="headline">Headline</div>
    <div id="newsitems">News Items</div>
    <!-- FOOTER -->
    <div id="footer">Footer</div>
</div>
</body>
</html>


的CSS

#page-container {
width:960px;
margin:auto;
background:red;
}

html, body {
margin:0;
padding:0;
}

#logo {
background:purple;
height:150px;
width:270px;
margin-right:450px;
}

#mainpic {
background:darkgrey;
width:270px;
height:450px;
}

#navbar {
float:right;
background:lightblue;
height:50px;
width:690px;
}

#headline {
background:grey;
height:200px;
margin-left:270px;
margin-right:350px;
}

/* News Items Mock - height:350px */
#newsitems {
background:blue;
margin-left:270px;
margin-right:350px;
}

#mediaplayer {
clear:both;
float:right;
background:black;
height:200px;
width:350px;
}

/* Sightings Mock - height:150px; */
#sightings {
clear:both;
float:right;
background:green;
width:350px;
}

#blogheader {
clear:both;
float:right;
background:darkgreen;
height:40px;
width:350px;
}

#sociallinks {
clear:both;
float:right;
background:orange;
height:40px;
width:350px;
}

#footer {
background:yellow;
clear:both;
height:30px;
}

最佳答案

我看到的问题是,您正在尝试在没有任何容器的情况下将一系列div堆叠在另一个顶部,以创建三栏式页面设计,而使用CSS可能会更容易创建一系列div。每个列的容器,可用于在其下堆叠div。以这个为例:

如果创建了一系列列div,则可以轻松地将所有页面节堆叠在其自己的列内,这样,您可以轻松地在页面中随意堆叠任意节,而无需返回到CSS并以这种方式放置你现在正在做。

<div class="column">
   <section>
   <section>
</div>

<div class="column">
   <section>
   <section>
</div>

<div class="column">
   <section>
   <section>
</div>


在标记中声明了列之后,就可以浮动它们,使它们彼此相邻堆叠,然后可以使用clearfix,这样它们就不会彼此重叠,如下所示:

.column:before, .column:after {
    content:"";
    display:table;
}

.column:after {
    clear:both;
}

.column {
    zoom:1; /* ie hasLayout fix */
    float:left;
}


这是代码演示,其中的列实现了我想寻找的结果:http://jsfiddle.net/wSejZ/1/show/,您可以在此处编辑小提琴:http://jsfiddle.net/wSejZ/1/

请注意,节是如何堆叠在列中的,这样您就可以堆叠任意数量的节,并且它们将被适当地堆叠在其容器内。

关于css - CSS中心专栏-清除错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9851179/

10-09 16:46
查看更多