不能正确地居中和适合文本和div

时间:2013-10-16 19:12:33

标签: css html text center

嘿我试图将我的文本放在div中,同时在我的内容区域内容纳三个div,但不知怎的,这是不行的......

HTML

            <div id="content">
        <div class="latest">
            <p>Gentlemen, these are my latest works</p>
        </div>
        <div id="works">
            <div class="one"> 
                <a href="myworks.html" class="title">Lineage 3 Online</a>
                <div class="prev1"></div>
                </div>
            </div>
            <div class="two"> 
                <a href="myworks.html" class="title">Lineage 3 Online</a>
                <div class="prev2"></div>
                </div>
            </div>
            <div class="three"> 
                <a href="myworks.html" class="title">Lineage 3 Online</a>
                <div class="prev2"></div>
                </div>
            </div>
        </div>

    </div>

CSS

    div#content {
width: 1000px;
margin-left: auto;
margin-right: auto;
    }

    div.latest {
text-align: center;
font-family: "Open Sans", Helvetica, sans-serif;
color: #777;
text-transform: uppercase;
letter-spacing: 5px;
font-weight: bold;
font-size: 18px;
padding-top: 25px;
padding-bottom: 5px;
border-bottom: 2px solid #DADADA;
    }

    div#works {
margin-top: 8px;
border-top: 2px solid #DADADA;
    }

    /*************************************/

    div.one {
float: left;
width: 300px;
height: 300px;
margin-top: 10px;
border: 1px dotted #333;

    }

    div.two {
    width: 300px;
height: 300px;
margin-top: 10px;
margin-left: auto;
margin-right: auto;
border: 1px dotted #333;
    }

    div.three {
float: right;
width: 300px;
height: 300px;
margin-top: 300px;
border: 1px dotted #333;
    }


    a.title {
color: #333;
font-family: "Open Sans", Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
text-decoration: none;
text-transform: uppercase;
text-align: center;
letter-spacing: 3px;
line-height: 3;
border: 1px solid #000;

    }


    div.prev1 {
background-image: url(images/prev1.jpg);
width: 300px;
height: 200px;
border: 2px solid #FFF;
-moz-box-shadow: 0 0 1px #000;
-webkit-box-shadow: 0 0 1px #000;
box-shadow: 0 0 1px #000;
margin-left: auto;
margin-right: auto;
margin-top: 10px;
    }

我还想补充一点,我是HTML5和CSS的新手,很抱歉,如果这个问题听起来很愚蠢。

1 个答案:

答案 0 :(得分:1)

首先,您在每个div上都有一个额外的结束</div>标记,这些标记是#works div的直接子级。

删除这些无关的结束标记后,要将文本居中,请将text-align:center添加到div#works css:

div#works {
    margin-top: 8px;
    border-top: 2px solid #DADADA;

    /* add this */
    text-align: center;
}

#works div的子项将继承它的text-align属性。

你的div没有正确对齐,因为你没有中间的浮动,第三个的边缘顶部是300px,而另外两个的边缘顶部是10px。

不是为每个元素创建新规则,因为它们都是#works div的子项,您可以创建更一般的规则,只选择#works div的子项:

#works > div {
    float: left;
    width: 300px;
    height: 300px;
    margin-top: 10px;
    border: 1px dotted #333;
}

在这种情况下,>选择器仅选择#works div的直接子项。

http://jsfiddle.net/jfUxA/3/

也是一个推荐:你不需要在你的id选择器前加上元素名称。特别是因为id只应该在页面上出现一次,所以进一步使用元素对选择器进行分类是多余的。