使用 CSS 垂直布局而不使用破坏元素?

Posted

技术标签:

【中文标题】使用 CSS 垂直布局而不使用破坏元素?【英文标题】:Vertical layout with CSS without using breaking elements? 【发布时间】:2013-01-28 23:41:43 【问题描述】:

是否可以用 CSS only 而不是 html 元素来实现 垂直布局

我在一个 div 中有一个 div 列表。默认下一个元素是从右到最后的,当右边没有位置时,它放在下面。

我想通过 CSS 样式设置实现相同的效果。有可能吗?

我的意思是纯 CSS,我们有 div 及其子元素,并且不要添加任何特殊内容,例如:

换行元素 (<br/>, <div style="clear:both;"/>) UL 标签 表格(是的,仍在使用,例如 JSF 几乎完全基于它们)

所以:

<div id="menu">
  <a href="something1">Page 1</a>
  <a href="something2">Page 2</a>
  <a href="something3">Page 3</a>
</div>

和 CSS 实现垂直布局:

#menu  ??? 
#menu a  ??? 

有没有???我可以用它来实现我想要的吗?

【问题讨论】:

那么,您希望将标签并排放置吗?或彼此重叠 一个在另一个之下,好像每个锚点后面都有一个 我已经添加了我的答案 【参考方案1】:

使用左浮动

#menu a 
    float:left;

然后将班级组添加到您的#menu

.group:before,
.group:after 
    content: "";
    display: table;
 
.group:after 
    clear: both;

.group 
    zoom: 1; /* For IE 6/7 (trigger hasLayout) */

【讨论】:

【参考方案2】:

将显示块设置为a

#menu a 
    display: block;

【讨论】:

【参考方案3】:

你的意思是这样的吗?

http://jsfiddle.net/7Y9jS/

#menu 
    width: 300px;


#menu a 
    display: block;
    background: #ccc;
    color: #000;
    padding: 10px 0;
    text-align: center;
    margin-bottom: 2px;



<div id="menu">
  <a href="something1">Page 1</a>
  <a href="something2">Page 2</a>
  <a href="something3">Page 3</a>
</div>

【讨论】:

【参考方案4】:

将锚标记显示为块元素。

#menu a 
display: block;

【讨论】:

它是如此简单,我不敢相信我不能用谷歌搜索它仅使用 CSS 搜索垂直定位...

以上是关于使用 CSS 垂直布局而不使用破坏元素?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中隐藏标签而不破坏视图

带有 CSS 显示的元素:无;破坏布局 - 导致错位

使用 png 填充图像移动 Raphael 路径,而不破坏 IE 中的图像或相对于元素移动图像?

以编程方式添加约束会破坏自动布局约束

垂直对齐父元素以排列中间子元素

在 IE11 中包装 flex 项目被破坏