我无法弄清楚如何用CSS做到这一点。如果我只使用<br>
标签,它可以完美运行,但是我试图避免这样做,原因很明显。
基本上,我只希望.feature_desc
span
开始新行,但是:
.feature_wrapper
会略有不同尺寸,但没有一个像整个屏幕一样宽。)示例代码:这有效,但使用br
标记:
<li class='feature_wrapper' id='feature_icon_getstart'>
<span style='display: none;' class='search_keywords'>started</span>
<span class='feature_icon spriteicon_img' id='icon-getstart'><a href='getstarted/index.html' class='overlay_link'></a></span><br/>
<span class='feature_desc'><a href='getstarted/index.html' >Getting Started Wizard</a></span>
</li>
我想用CSS设置样式以达到相同的效果:
<li class='feature_wrapper' id='feature_icon_getstart'>
<span style='display: none;' class='search_keywords'>started</span>
<span class='feature_icon spriteicon_img' id='icon-getstart'><a href='getstarted/index.html' class='overlay_link'></a></span>
<span class='feature_desc'><a href='getstarted/index.html' >Getting Started Wizard</a></span>
</li>
有什么想法吗?或者我是以错误的方式解决这个问题?
答案 0 :(得分:71)
你可以给它一个属性显示块;所以它的行为就像一个div并有自己的行
CSS:
.feature_desc {
display: block;
....
}
答案 1 :(得分:28)
尽管问题非常模糊且HTML片段非常有限,但我认为
.feature_desc {
display: block;
}
.feature_desc:before {
content: "";
display: block;
}
如果没有<br/>
元素,可能会让您想要实现。虽然将CSS应用于这些元素会有所帮助。
请注意。上面的例子在IE7中不起作用。
答案 2 :(得分:15)
我认为花车可能在这里最适合你,如果你不希望元素占据整行,那么浮动它应该工作。
.feature_wrapper span {
float: left;
clear: left;
display:inline
}
编辑:现在浏览器可以更好地支持你可以使用do inline-block。
.feature_wrapper span {
display:inline-block;
*display:inline; *zoom:1;
}
取决于text-align,它将通过其内联显示,同时也像块元素一样。
答案 3 :(得分:6)
对于块元素不占据整行,将其宽度设置为小而且white-space:nowrap
label
{
width:10px;
display:block;
white-space:nowrap;
}
答案 4 :(得分:2)
span::before { content: "\A"; white-space: pre; }
答案 5 :(得分:0)
我在我们的 WooCommerce 网站上遇到了类似的情况。 “添加到购物车”按钮就在自定义产品字段旁边,我需要将产品字段放在按钮下方。这是最终帮我解决问题的 CSS
#product-57310 label[for="wcj_product_input_fields_local_1"] { display: -webkit-box!important; margin-top: 80px; }
其中“#product-57310”是woocommerce中产品的ID,因此它仅适用于特定的产品页面而不是每个产品页面,并且其中“label[for="wcj_product_input_fields_local_1"]”针对的是第一个标签,专门用于“添加到购物车”按钮下。
答案 6 :(得分:0)
使用 flex parent 也可以。
将 flex-direction
设置为 column
会将每个子项放在一个新行上,设置 align-items
将使它们不会占据整个宽度。
这是一个小例子:
<div class="parent">
<a>some links</a>
<a>that should be on their own lines</a>
<a>but not take up the whole parent width</a>
</div>
.parent {
display: flex;
flex-direction: column;
align-items: flex-start;
}