比如:
<body>
<div id="A">
<div id="B"></div>
<div id="C"></div>
<div id="D"></div>
</div>
</body>
要让A居右显示(宽度200px),要让B、C、D在A中居中显示(宽依次为50px,30px,20px),CSS应该怎么写?
假设宽度用的是百分比(A:90%,B:50%,C:20%,D:10%),又改怎么实现?
<style type="text/css">
.main{ height:100px; background:red; margin:0px auto; width:480px;
}
p{ text-align:center; width:500px; height:200px; background:yellow;}
</style>
<body>
<div class="main"></div>
<p>å¨ä¸é´</p>
</body>
ææå¾ï¼
红è²åºåæ°¸è¿æ¯æ°´å¹³å± ä¸çï¼æ 论æµè§å¨å®½åº¦æ¯å¤å°çã
margin:0px auto;(è®°å¾è®¾å®è¿ä¸ªdivç宽度)
text-align:center;æ¯ç¨äºæåçæ°´å¹³å± ä¸ã
如果是百分比呢?
追答百分比也是好用的,margin:0px auto;自动计算并且居中
追问那怎么让BCD并排居中呢?BCD还是有宽度哈,不要用inline,似乎用了它宽度属性之类的就不管用了
追答首先BCD都是div属于行元素,也就是说独自占据一行,如果想两个div或者多个div要在同一行显示那就需要进行设置成为浮动或者变成行内元素(inline)。楼主不要inline那也就只有float了。但是前提是float不能自动的进行居中距离,因此只能将父层进行设定,里面浮动。根据父层的宽度设定BCD的margin,padding的值
追问那可不可以适当改动上面的层结构(比如增加容器)来实现我说的效果呢(宽度用百分比)?
追答以我的能力认为css是不支持div并排显示并且都自动居中处理的。你只能float加上marigin进行设定,表面上看是居中的,实际居中只能对单一元素,例如div的margin:0px auto,内容居中text-align:center;
那怎么让BCD并排居中呢?BCD还是有宽度哈,不要用inline,似乎用了它宽度属性之类的就不管用了
追答并排居中,div宽度必须一样,不然每个div里面的内容居中后是对不起的。
追问那就把宽度设置成一样的吧,可适当增加容器(div)
追答#A{width:100%;height:200px;float:right;}inline-height可以垂直居中,比如宽度设置50px;想要内容垂直居中,可以设置height:50px;inline-height:50px;不需要垂直居中的话inline-height不设置。
追问我是说把层中的div并排居中,不是把里边文字之类的居中
追答#A{width:800px;height:200px;float:right;}谢谢
本回答被提问者采纳