float属性在不设宽度的坑?

大家应该都知道float属性的作用。这里不做累述。
我现在要实现这样的效果,然后滚动,自右向左。


想要实现的效果

可以看到li的宽度是随内容撑开,不能把宽度设死,当然ul的宽度也就是随内容撑开,不能把宽度设死。
先上代码,看想要实现的效果,以及bug的效果。*{
padding: 0;
margin: 0;
}
ul{
list-style: none;
}
.main{
margin: 100px auto;
width: 820px;
height: 78px;
background: orangered;
overflow: hidden;
}
ul li{
float: left;
line-height: 66px;
font-size: 18px;
color: #142131;
font-weight: 400;
text-align: center;
padding: 0 12px;
border: 2px seagreen solid;
}


html
看完代码,相信大家都已经知道要实现的效果了吧。那好,我们现在看看最终呈现出来的效果。
效果
和你想的一样吗?这又是为什么呢?

估计有人会说用display:inline-block啊。我试了,效果还是一样,不信大家可以自行调试。

查阅W3C得知,float元素需要给他设定宽度
查阅W3C得知

ul不设置宽度时,他会继承父级的宽度,而不是随子元素内容撑开。但是现在我们又不能设置宽度。
那我们给ul设置宽度?这样是可行的,通过js获取到li的宽度,加起来就是了。但要是通过css实现呢?
给ul嵌套个父级,并且给他的宽度无限大,让ul滚动即可。
ul嵌套父级wrap

wrap的css

最终效果

以上。
好了,打完收工。
(注:前端开发,细碎繁杂。开这个专栏,仅仅是想把我平时工作学习中遇到的问题,给它记录下来,并没有做归纳梳理,所以不会那么详实连贯。大神大牛,请绕道。如果对你真有帮助,不吝赐我我一颗红心,或者赏我一颗糖吃,我也会满心笑纳,手动笑~~~)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 不会用代码框,所以看着有些乱套,,,,html部分 <!DOCTYPE html> 迅雷看看 ...
    这就是个帅气的名字阅读 5,501评论 0 0
  • 一 外部式css样式 (也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css...
    KunMitnic阅读 4,596评论 0 1
  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,893评论 0 1
  • 远去是埋藏已久的念头,但也仅限于念头。 决定走,却源于瞬间。 就在刚刚,霎那间,我想,我是真的要走了…… 我是默,...
    星蔓阅读 3,858评论 1 9

友情链接更多精彩内容