CSS浮动高度不统一乱排,在线等?

问题出在我没有个<li>设置固定高度都是元素撑开的,由于文字多少撑开的高度不统一所以整个<li>没有固定值高度,在给<li>添加float:left就排列成这个样子了。我... 问题出在我没有个<li>设置固定高度都是元素撑开的,由于文字多少撑开的高度不统一所以整个<li>没有固定值高度,在给<li>添加float:left就排列成这个样子了。我现在想让她们像图3那样排列。 展开
 我来答
小猿说道
2020-11-21 · 过来看看吧,各位客官!
小猿说道
采纳数:2 获赞数:4

向TA提问 私信TA
展开全部

目标效果:每一排都要顶部对齐

方法:1、块级元素行内显示:display: inline-block;

          2、顶部对齐:vertical-align: text-top;

实现步骤:

1、建立基本元素标签,并设置颜色区分, 设置不同高度来模拟你所说的高度不一致的情况

代码:

效果图:

2、换行:使每个li变成行内块级元素,宽度超过ul宽度时会自动换行

代码:

效果图:

3、顶部对齐:其实第二步已经做到了,是默认的顶部对齐,但经测试有时候不会顶部对齐,如:将文字去掉

所以加上一句:vertical-align: text-top;更为保险了。

4、完整代码:

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        ul li{ list-style:none; }

        .myli {

            width: 25px;

            margin-top: 10px;

            color: #ffffff;

            vertical-align: text-top;

            display: inline-block;

        }

    </style>

</head>


<body>

    <ul style="width: 100px;margin: auto;border: #303030 1px solid;">

        <li class="myli" style="height: 20px; background-color: #666;"></li>

        <li class="myli" style="height: 40px; background-color: rgb(17, 233, 186);"></li>

        <li class="myli" style="height: 28px; background-color: rgb(11, 87, 226);"></li>

        <li class="myli" style="height: 60px; background-color: rgb(7, 194, 178);"></li>

        <li class="myli" style="height: 10px; background-color: #303030;"></li>

        <li class="myli" style="height: 20px; background-color: #bcbe23;"></li>

        <li class="myli" style="height: 40px; background-color: #370d85;"></li>

        <li class="myli" style="height: 20px; background-color: #303030;"></li>

    </ul>

</body>

</html>

更多追问追答
追问
如果高度是内容撑开的,不给高度固定值,内容撑开多少算多少,你给了固定值如果我文字内容多出了你设定的高度值岂不是又要重新设置,还是你说的方法你有这样设置过嘛?
追答
我这里的高度不就是模拟的撑开效果嘛,不信的话你把所有li设置height:auto然后自己在里面多加点文字试一下嘛,一样的吧
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
小鸟蚁人
2021-02-20 · 超过13用户采纳过TA的回答
知道答主
回答量:124
采纳率:71%
帮助的人:8.5万
展开全部

css弹性布局

<!DOCTYPE html>

<html>

<head>

<title>css弹性布局</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style>

a{

text-decoration:none;/*a去下划线*/

border-bottom:1px dashed red;/*a虚线底边框*/

}

#outbox{

position:relative;/*a相对定位*/

width:70%;/*宽度*/

margin:0 auto;/*横向居中*/

display:flex;/*弹性容器*/

flex-wrap:wrap;/*自动换行*/

justify-content:flex-start;/*横向对齐方式从左向右*/

align-content:flex-start;/*多行纵向对齐方式,从上向下*/

align-items:flex-start;/*单行纵向对齐方式,从上向下*/

}

.mybox{

width:19.4%;/*宽度*/

margin-right:0.8%;/*右边距*/

margin-bottom:10px;/*底边距*/

}

#outbox div:nth-child(4n){/*选择第4n个子容器*/

margin-right:0px;/*右边距为0*/

}

.topbox{

width:100%;/*宽度相对于父容器100%*/

height:100px;/*高度*/

background:rgb(218,218,218);/*背景色*/

border-radius:7px;/*圆角*/

}

h2{

font-size:16px;/*文字高度*/

}

p{

font-size:14px;/*文字高度*/

}

</style>

</head>

<body>

<div id="outbox">

<div>

<div>

</div>

<h2>一个文章标题</h2>

<p>文章的文字内容,这里的。</p>

<a href="###">learn more</a>

</div>

<div>

<div>

</div>

<h2>一个文章标题</h2>

<p>文章的文字内容,这里的文字内容有的时候多,有的时候少,要看情况而定。</p>

<a href="###">learn more</a>

</div>

<div>

<div>

</div>

<h2>一个文章标题</h2>

<p>文章的文字内容,这里的文字内容有的时候多,有的时候少,要看情况而定。文章的文字内容,这里的文字内容有的时候多,有的时候少,要看情况而定</p>

<a href="###">learn more</a>

</div>

<div>

<div>

</div>

<h2>一个文章标题</h2>

<p>文章的文字内容,这里的文字内容有的时候多,有的时候少,要看情况而定。</p>

<a href="###">learn more</a>

</div>

<div>

<div>

</div>

<h2>一个文章标题</h2>

<p>文章的文字内容,这里的文字内容有的时候多,有的时候少,要看情况而定。</p>

<a href="###">learn more</a>

</div>

<div>

<div>

</div>

<h2>一个文章标题</h2>

<p>文章的文字内容,这里的文字内容有的时候多,有的时候少,要看情况而定。</p>

<a href="###">learn more</a>

</div>

</div>

</body>

</html>

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xkkkk
2020-11-20 · 超过19用户采纳过TA的回答
知道答主
回答量:116
采纳率:100%
帮助的人:9.2万
展开全部
你好,这种情况你最好设置li标签的固定高度,然后如果说文字过多,可以将多余的文字用省略号表示,排列方式的话,可以参考盒模型:display:flex;设置自动换行,因为有固定宽度(20%~25%),所以超出就自动换行:flex-wrap:wrap;
另外: 你的float布局也可以,导致这个的原因就是因为你的li太高了,把中间那两个li挤到了最旁边
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-11-20
展开全部
1,可以给li,或者p元素一个固定的高度
2.在ul上给样式{
display:flex;

flex-wrap:wrap;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
特会说
2020-11-21 · TA获得超过1035个赞
知道小有建树答主
回答量:1799
采纳率:28%
帮助的人:576万
展开全部
设置固定高度,建议实用grid 或者flex布局
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式