请教一个移动端 css 的样式问题

请教一个移动端 css 的样式问题,第1张

请教一个移动端 css 的样式问题,第2张

像这样子 375px 的布局,黑色是菜单 100px,然后天蓝色是两边的等距 20px,剩下中间就是 235px 了,有一些 70px 的分类,一行放三个,中间黑色箭头的距离 25px 该怎么等分呢,一三俩个贴边,二居中?会有动态加载即肯定不止一行的情况,求大佬指点!

请教一个移动端 css 的样式问题,示例,第3张

谢谢大佬们解答。对于动态加载的 flex 布局,如果第二行只有两条的话,就会两端对齐了,然后就需要手动去 js 里面操作把这个 list 加一项,让第二行补充为三个才会样式正常。但是现在我想问的是有没有只从单纯的 css 来实现,不要出现 .5px 的情况,移动端。。。 感谢大家的解答,10L 和 12L 是我所需要的,再次感谢! 看到 grid 布局的这么多,平时我用的少所以想问一下,这里想要的是在 20padding 的基础上两端对齐,然后一三需要贴合 padding,二居中,那不是还需要选择器来判断一三 text-align:left or right,二:text-align: center 吗?这样的话和 10L 大佬的方法在最后一个去算 margin-right 我觉得好像都差不多,而且对于 grid 在移动端的坑其实我也不太懂,平时主要还是 flex 用得多。 ----------------------- 以下是精选回复-----------------------

答:display flex
justify-content space-between
答:问后端的话就是 flex 一把梭
答:flex 布局完事,父容器设置 justify-content 为 space-between 或 space-around
答:flex 吧,最好的布局方式
答:<div class="main">
<div class="main-left"></div>
<div class="main-right">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
</div>

.main {
display: flex;
}
.main-left {
width: 100px;
}
.main-right {
flex: 1;
padding: 0 20px;
display: flex;
align-items: center;
justify-content: space-between;
}
答:.box {
width: 70px;
}
答:flex 随便搞
答:基本都 flex
答:最后一行问题,搭配 nth-child:last-child 就好了
例如你现在的是 70px:
.item:nth-child(3n-1):last-child {
margin-right: calc(100% - 140px - (100% - 210px) / 2)
}
答:为什么剩下 235px 不是 335 ?
答:多行不确定项时,不要使用 justify-content: space-between; 直接默认 flex-start,宽度取百分比,对中间元素取 margin.用
div {
width: 30%;
}
div:nth-child(3n+2) {
margin: 0 5%;
}
答:打扰了
答:最后一行问题可以使用 ::after 伪元素选择器可以解决吧
答:请教一个移动端 css 的样式问题,第4张
答:10L 和 12L 方法都可行,12L 可能写起来更简单一点,无需计算。 但是 使用 flex 的时候,注意要设置 box-sizing: border-box;
答:margin-left: 12.5px
答:10L 的挺好
答:最简单的办法

div{
width: 32%;
}

div:not(:first-child){
margin-left: 2%;
}
答:我一般是用六楼的方法。
10l 12l 的学到了
答:2200 年了,不如直接 grid,只要设 column-gap 就好了
答:<body>
<div class="main">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<div class="box">7</div>
<div class="box">8</div>
</div>
</body>


.main
display flex
width 235px
height 500px
flex-wrap wrap
border 1px solid black
.box
width 70px
height 70px
margin-right 12.5px
&:nth-of-type(3n)
margin-right 0
答:这样?



<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
html,body {
height: 100%;
}
.side-bar {
float: left;
width: 100px;
height: 100%;
background: #000;
}
.list {
box-sizing: border-box;
margin-left: 100px;
padding-left: 20px;
padding-right: 20px;
overflow: hidden;
}
.item-wrap {
float: left;
width: calc(100% / 3);
text-align: center;
}
.item {
display: inline-block;
width: 70px;
height: 70px;
background: red;
}
</style>
</head>
<body>
<div class="side-bar"></div>
<div class="list">
<div class="item-wrap">
<div class="item"></div>
</div>
<div class="item-wrap">
<div class="item"></div>
</div>
<div class="item-wrap">
<div class="item"></div>
</div>
<div class="item-wrap">
<div class="item"></div>
</div>
</div>
</body>
</html>
答:这篇博客不错

[让 CSS flex 布局最后一行列表左对齐的 N 种方法]( https://www.zhangxinxu.com/study/201908/flex-last-align-demo.php)
答:用 nth 选择器就行,你去百度下这玩意的用法,这种布局分分钟随便写。。。。
答:直接用 flex 布局啊~~~
答:flex 应该搞不定这事,最后一行只有 1 个或 2 个的话会布局有问题,直接用 grid 会好一些
答:flex 解决不了,楼上说的 margin 有时候还是会存在有 bug。
最终的解决办法是 grid
答:用 grid 啊。。。
答:咋不用 12 栅格布局
答:需求是多行两端对齐尾行左对齐,grid 的 repeat +++1
答:如果不用 flex 的话,传统方法 grid 布局的思想
容器左右两端给一个负的 margin,然后每一个块的宽度是 100%/个数,每一个有一个 padding,左右正好是容器的负 margin,这样就正好左右两个贴边,中间的均匀分布了
答:item inline-block,nth-child( 3n-1),设置每行中间那个 item margin:0 12.5px;即可

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 请教一个移动端 css 的样式问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情