欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

flex布局下兩端對(duì)齊,不滿左對(duì)齊

 更新時(shí)間:2022年12月23日 16:32:42   作者:貓兒念你  
這篇文章主要介紹了flex布局下兩端對(duì)齊,不滿左對(duì)齊,需要的朋友可以參考下

彈性布局多列換行居左布局

解決方案一

問(wèn)題情境:

在flex布局下,多行排列,如何讓flex布局最后一行沒(méi)有排滿時(shí),向左對(duì)齊排列且與上面的行間距相同。

在這里插入圖片描述

實(shí)現(xiàn)效果:

在這里插入圖片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<style type="text/css">
		li {
			list-style: none;
		}

		.List {
			width: 100%;
			box-sizing: border-box;
			display: flex;
			justify-content: space-between;
			flex-wrap: wrap;
			padding: 10px;
		}
		.List:after{
			content: "";
			flex: auto;
		}

		.item {
			/* 寬度是固定好的 */
			width: 220px;
			height: 60px;
			background-color: azure;
			margin-bottom: 10px;
			border: 1px solid red;
			/*這個(gè)數(shù)值需要自己去調(diào)*/
			margin-right: 17px;
		}
		.item:nth-child(5n){
			/* 盡量讓item在list中居中,兩邊都沒(méi)有margin */
			margin-right: 0;
		}
		
	</style>
	<body>
		<div id="" style="width: 1200px;margin: auto;background-color: #cccccc;height: 500px;">
			<ul class="List">
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				<li class="item"></li>
				
			</ul>
		</div>

	</body>
</html>

重要代碼:要加after以及每個(gè)item的margin-right

.List:after{
		content: "";
		flex: auto;
	}

解決方案二

在用flex布局的時(shí)候遇到了下面這種問(wèn)題,這是我的結(jié)構(gòu)

 <div class="videoMain">
      <div class="video" v-for="num in 8" :key="num"></div>
  </div>
 .videoMain{
        display: flex; 
        flex-wrap: wrap;
        justify-content: space-between;
        align-content: flex-start;
        height: 100%;
        overflow-y: auto;
        
        .video{
            width: 342px;
            height: 210px;
            margin-bottom:10px;
            background-color: cyan;
        }
     }

當(dāng)我使用 justify-content:space-between 或者 space-around 的時(shí)候頁(yè)面效果是這樣的

在這里插入圖片描述

很明顯最后一行的三個(gè)元素我想讓他左對(duì)齊,看到網(wǎng)上有說(shuō)給父級(jí)元素加上偽類,我試了試

.videoMain{
        display: flex; 
        flex-wrap: wrap;
        justify-content: space-between;
        align-content: flex-start;
        width: 100%;
        height: 100%;
        overflow-y: auto;
        
        
        .video{
            width: 342px;
            height: 210px;
            margin-bottom:10px;
            background-color: cyan;
        }
        i{
            width: 342px;
        }
     }
     .videoMain::after{
        content: '';
        flex: auto; // 或者1
     }

最后效果是這樣的,最后一行都連上了(第一張圖),也沒(méi)有達(dá)到我想要的左對(duì)齊的效果,寫margin-right之后和上面的又不對(duì)齊了(第二張圖),不知道為什么別人說(shuō)的就可以,有知道的也可以評(píng)論告訴我。

在這里插入圖片描述

在這里插入圖片描述

個(gè)人的解決方案

加了3個(gè)i標(biāo)簽,并把它的寬度設(shè)置的和.video的寬度一樣,沒(méi)有高度,這樣的做的目的是最后一行差的給它補(bǔ)上,所以它會(huì)自動(dòng)對(duì)齊,又因?yàn)闆](méi)有寫高度,所以頁(yè)面中什么也不會(huì)顯示

<div class="videoMain">
  <div class="video" v-for="num in 8" :key="num"></div>
    <i v-for="num in 3" :key="num"></i>
</div>
 i{
    width: 342px;
 }

在這里插入圖片描述

這樣就實(shí)現(xiàn)了底部和上面對(duì)齊的效果啦!

解釋一下為什么我加了三個(gè) i 標(biāo)簽

因?yàn)槲业臐M行最多是五個(gè)div,底部多出一個(gè)div的時(shí)候,效果是沒(méi)有影響的,當(dāng)?shù)撞慷喑鰞蓚€(gè)div的時(shí)候,顯示在最前面和最后面的位置,這個(gè)不是我預(yù)期的效果,所以需要添加三個(gè) i 標(biāo)簽來(lái)補(bǔ)齊,當(dāng)?shù)撞渴侨齻€(gè)div的時(shí)候,同一行后面跟著兩個(gè) i 標(biāo)簽,下一行又有一個(gè) i 標(biāo)簽,但是由于 i 標(biāo)簽沒(méi)有高度,所以就和沒(méi)有一樣,視覺(jué)上就實(shí)現(xiàn)了我們想要的效果,無(wú)論頁(yè)面的寬度怎么變,效果是不變的。

解決方案三

最近uni-app開(kāi)發(fā)出現(xiàn)一個(gè)頁(yè)面效果:多行三列左右對(duì)齊,超出換行左對(duì)齊,網(wǎng)上查了很多都沒(méi)有能有效解決這個(gè)問(wèn)題,而且這個(gè)在手機(jī)app上屬于比較特殊的情況,UI效果:

在這里插入圖片描述

我這里就講自己如何解決這個(gè)問(wèn)題:
首先一個(gè)問(wèn)題考慮到最后一行不滿的情況,如果使用左右兩端對(duì)齊,很明顯最后一行,如果是兩列呢?例如這個(gè):

在這里插入圖片描述

此時(shí),就不滿足左對(duì)齊了!

這個(gè)情況是會(huì)遇到的。比如,我們用v-for循環(huán)渲染內(nèi)容,后臺(tái)隨機(jī)增加標(biāo)簽內(nèi)容,就無(wú)法避免出現(xiàn)上面兩端對(duì)齊的問(wèn)題了!

所以考慮到特殊情況作了如下改動(dòng),上代碼:

<view class="itemBox">
	<view class="item">
		儀表儀器
	</view>
	<view class="item">
		儀表儀器
	</view>
	<view class="item">
		儀表儀器
	</view>
	<view class="item">
		儀表儀器
	</view>
	<view class="item">
		儀表儀器
	</view>
	<view class="item">
		儀表儀器
	</view>
</view>
.itemBox {
	width: auto;
	display: flex;
	/* 兩端對(duì)齊 */
	justify-content: space-between;
	flex-wrap: wrap;

	.item {
		width: 32.5%;
		height: 60rpx;
		text-align: center;
		line-height: 60rpx;
		background-color: #F2F2F2;
		font-size: 32rpx;
		font-family: PingFang SC;
		font-weight: 400;
		margin-top: 20rpx;
	}
	
	/* 如果最后一行是3個(gè)元素 */
	.item:last-child:nth-child(3n - 1) {
	    margin-right: calc(32.5% + 3% / 3);
	}
	/* 如果最后一行是2個(gè)元素 */
	.item:last-child:nth-child(3n - 2) {
	    margin-right: calc(65% + 6% / 3);
	}
}

最后效果:

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

很完美的解決了最后一行不滿一列、兩列不是左對(duì)齊的情況!

以上就是flex布局下兩端對(duì)齊,不滿左對(duì)齊的詳細(xì)內(nèi)容,更多關(guān)于flex布局下兩端對(duì)齊,不滿左對(duì)齊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論