为什么在<li>浮动时每个<UL>都不从左边开始?
Why doesn't each <UL> start from the left when <li> is floating?
我希望我的 <li>
元素在每个 <ul>
块中水平对齐,但每个 <ul>
块在新行的左侧开始。以下将不起作用。 <ul>
显示在同一行。
<style>
.fl {
float: left;
}
</style>
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul>
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
https://jsfiddle.net/bcLudxwj/
我该如何解决?
显示列表项的内嵌块和显示 ul 的块
ul li{
display:inline-block;
}
ul{
display:block;
}
您需要清除 ul:
ul {
overflow: hidden;
}
浮动属性元素的容器需要"cap"才能正确使用。这个上限通常被称为"clearer"。您需要在 css:
中创建一个像这样的 class "clearer"
<style>
.clearer {
clear:both;
}
</style>
并将这个 <div class="clearer"></div>
放在每个 </ul>
之前
试试这个代码:
.fl{ float:left;clear:both;}
ul
不会在新行开始,因为您还没有清除每个 ul
块的浮动。
还要添加一个 margin
来说明 space 用于未排序列表的 项目符号 - 请参见下面的演示:
更新 fiddle: https://jsfiddle.net/xu9j3rsp/
.fl {
float: left;
margin: 15px;
}
ul:after {
content: '';
display: block;
clear: both;
}
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul>
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
方法一:使用 display: flex;
添加 ul Css display: flex;
并删除 <ul style='display:block'>
中的内联样式 tag.Below 示例参见
ul
{
display: flex;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
现场演示 Here
下面的代码段示例
ul
{
display: flex;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul >
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
方法二:使用 display: table;
添加 ul Css display: flex;
并删除 <ul style='display:block'>
中的内联样式 tag.Below 示例参见
ul
{
display: table;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
现场演示 Here
下面的代码段示例
ul
{
display: table;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul >
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
我希望我的 <li>
元素在每个 <ul>
块中水平对齐,但每个 <ul>
块在新行的左侧开始。以下将不起作用。 <ul>
显示在同一行。
<style>
.fl {
float: left;
}
</style>
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul>
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
https://jsfiddle.net/bcLudxwj/
我该如何解决?
显示列表项的内嵌块和显示 ul 的块
ul li{
display:inline-block;
}
ul{
display:block;
}
您需要清除 ul:
ul {
overflow: hidden;
}
浮动属性元素的容器需要"cap"才能正确使用。这个上限通常被称为"clearer"。您需要在 css:
中创建一个像这样的 class "clearer"<style>
.clearer {
clear:both;
}
</style>
并将这个 <div class="clearer"></div>
放在每个 </ul>
试试这个代码:
.fl{ float:left;clear:both;}
ul
不会在新行开始,因为您还没有清除每个 ul
块的浮动。
还要添加一个 margin
来说明 space 用于未排序列表的 项目符号 - 请参见下面的演示:
更新 fiddle: https://jsfiddle.net/xu9j3rsp/
.fl {
float: left;
margin: 15px;
}
ul:after {
content: '';
display: block;
clear: both;
}
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul>
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
方法一:使用 display: flex;
添加 ul Css display: flex;
并删除 <ul style='display:block'>
中的内联样式 tag.Below 示例参见
ul
{
display: flex;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
现场演示 Here
下面的代码段示例
ul
{
display: flex;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul >
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>
方法二:使用 display: table;
添加 ul Css display: flex;
并删除 <ul style='display:block'>
中的内联样式 tag.Below 示例参见
ul
{
display: table;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
现场演示 Here
下面的代码段示例
ul
{
display: table;
}
li.fl
{
float:left;
margin-right:10px;
list-style-type: none;
}
<ul>
<li class='fl'>Test 1</li>
<li class='fl'>Test 2</li>
</ul>
<ul >
<li class='fl'>Test 3</li>
<li class='fl'>Test 4</li>
</ul>