博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给li设置float浮动属性之后,无法撑开外层ul的问题。
阅读量:5462 次
发布时间:2019-06-15

本文共 1077 字,大约阅读时间需要 3 分钟。

最近在项目中有好几次遇到这个问题,感觉是浮动引起的,虽然用<div style="clear:both"></div>解决了,但自己不是特别明白,又在网上查了相关内容,是因为给li设置了浮动之后它就脱离当前正常的文档流,所以没办法撑开外层ul的高度。

以下面代码为例,其实有好几种解决方法,我用的这种并不是最简单的。

<!DOCTYPE html >

<html >
<head>
<meta charset="utf-8">
<title>给li设置float浮动属性之后,无法撑开外层ul的问题。</title>
<style type="text/css">
ul{
    border: 1px solid #000;
    width: 200px;
    height: auto;
    margin-top: 100px;
}
li{
    float: left;
    list-style: none;
    margin-left: 10px;
}
</style>
<body>
<ul>
    <li>星期一</li>
    <li>星期二</li>
    <li>星期三</li>
    <li>星期四</li>
    <li>星期五</li>
    <li>星期六</li>
    <li>星期天</li>
</ul>
</body>
</html>

以上代码显示结果如图,ul的边框变成了一条线,没有被撑开,

可是我期望的效果是这样的:

如果ul里边的内容是固定的,给ul加上高度就可以解决问题,但是遇到的项目中li是动态生成的,个数不能确定,所以高度只能设置成auto,这时候其实只要给外层ul也加上浮动属性就可以解决问题,但有时候布局会受到影响,只能根据情况而定;另外给ul加上overflow:auto/hidden也可以解决问题,如果要兼容ie6,后面加上"zoom:1"或者"width:100%"即可。

最后再总结一下,总共有4种方法:

第1种方法在html代码里边给最后一个li后面加空元素清除浮动,div可以换成p或者其他。具体如下图:

第2种方法:给ul设置固定的高度。具体如下图:

第3种方法:给ul设置overflow属性,也可以是overflow:hidden。具体如下图:

第4种方法:给ul加浮动属性,可以换成float:right,但是很有可能布局就会收到影响。具体如下图:

每个人用的方法应该都不一样,我觉得第三种方法最简单,以后就用这种。哈哈,这会下班回家~~

转载于:https://www.cnblogs.com/cielzhao/p/5781462.html

你可能感兴趣的文章
stm32F4系列库函数版本各模块配置过程
查看>>
Android_(传感器)指南针
查看>>
个人工作总结2
查看>>
E - Valued Keys
查看>>
[WASM] Write to WebAssembly Memory from JavaScript
查看>>
[TypeScript] Model Alternatives with Discriminated Union Types in TypeScript
查看>>
[Redux] Filtering Redux State with React Router Params
查看>>
模块与包
查看>>
fragment的学习
查看>>
<context:annotation-config/>
查看>>
BZOJ4364: [IOI2014]wall砖墙(线段树)
查看>>
手动删除引用nuget如何还原
查看>>
Java8 Stream
查看>>
angular 中的 ? 和 !
查看>>
Java 线程池
查看>>
(unix domain socket)使用udp发送>=128K的消息会报ENOBUFS的错误
查看>>
C# WebRequest简单调用WebService方法
查看>>
Asp.net基础知识
查看>>
一个农民工自学java找到工作的励志故事
查看>>
Servlet生命周期方法,request.getRequestDispatcher
查看>>