Web前端开发之CSS学习笔记7—多列布局

目录

1.column-count:指定列数 

2.column-gap:指定的列之间的差距

3.column-rule:设置列之间的宽度,样式和颜色

4.column-width:指定列的宽度

5.column-span:指定横跨列数

6.columns:设置列宽和列数

7.column-fill:指定如何填充列


多列布局的属性:

属性说明
column-count指定列数
column-width指定列宽
columnscolumn-width和column-count的简写
column-gap指定列之间的间距
column-fill指定内容在列与列之间的分布方式
column-span指定元素横向能跨多少列
column-rule-color指定列之间的颜色
column-rule-style指定列之间的样式
column-rule-width指定列之间的宽度
column-rulecolumn-rule-color、column-rule-style和column-rule-width的简写

1.column-count:指定列数 

例子1:两列布局演示(有中间空隙)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>实现两列布局</title>
		<style type="text/css">
			/*不使用float实现两列办局*/
			div.two{
				column-count: 2;
			}
			div.left{
				background-color: beige;
				padding: 20px;
				box-sizing: border-box;
			}
			div.right{
				background-color: aliceblue;
				padding: 20px;
				box-sizing: border-box;
			}
		</style>
	</head>
	<body>
		<h1>两列布局演示</h1>
		<div class="two">
			<div class="left">
				<h2>左侧</h2>
				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cumque commodi aliquam saepe eaque dolor aliquid voluptate corrupti est repudiandae quibusdam sint atque. Laborum amet voluptas nesciunt consectetur ullam assumenda sed.</p>
			</div>
			<div class="right">
				<h2>右侧</h2>
				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Beatae mollitia omnis sunt minus recusandae sequi et id ipsam ad. Facere autem similique porro et veritatis quas incidunt earum facilis distinctio.</p>
			</div>
		</div>
	</body>
</html>

例子2:多列布局

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>实现多列布局</title>
		<style type="text/css">
		    /*将P拆分成5列*/
		    div.column{
		    	column-count: 5;			
		    }
		</style>
	</head>
	<body>
		<div class="column">
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci vero voluptatum nulla similique animi nihil eos quas at et incidunt culpa quam magnam quasi aut totam nesciunt perferendis molestiae tempora.</p>
		</div>
	</body>
</html>

2.column-gap:指定的列之间的差距

例子3:两列布局(无中间空隙)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>实现两列布局</title>
		<style type="text/css">
			/*不使用float实现两列办局*/
			div.two{
				column-count: 2;
				column-gap: 0;/*消除中间空隙*/
			}
			div.left{
				background-color: beige;
				padding: 20px;
				box-sizing: border-box;
			}
			div.right{
				background-color: aliceblue;
				padding: 20px;
				box-sizing: border-box;
			}
		</style>
	</head>
	<body>
		<h1>两列布局演示</h1>
		<div class="two">
			<div class="left">
				<h2>左侧</h2>
				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cumque commodi aliquam saepe eaque dolor aliquid voluptate corrupti est repudiandae quibusdam sint atque. Laborum amet voluptas nesciunt consectetur ullam assumenda sed.</p>
			</div>
			<div class="right">
				<h2>右侧</h2>
				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Beatae mollitia omnis sunt minus recusandae sequi et id ipsam ad. Facere autem similique porro et veritatis quas incidunt earum facilis distinctio.</p>
			</div>
		</div>
	</body>
</html>

3.column-rule:设置列之间的宽度,样式和颜色

column-rule-color:指定列之间的颜色

column-rule-style:指定列之间的样式

column-rule-width:指定列之间的宽度

例子4:列间样式设置

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>实现两列布局</title>
		<style type="text/css">
		    /*不使用float实现两列办局*/
		    div.two{
		    	column-count: 2;
		    	column-gap: 20px;/*指定中间空隙*/
		    	column-rule-color: pink;
		    	column-rule-style: solid;
		    	column-rule-width: 5px;
		    }
		    div.left{
		    	background-color: beige;
	    		padding: 20px;
	    		box-sizing: border-box;
	       	}
		    div.right{
		    	background-color: aliceblue;
		    	padding: 20px;
		    	box-sizing: border-box;
	    	}
		</style>
	</head>
	<body>
		<h1>两列布局演示</h1>
		<div class="two">
			<div class="left">
				<h2>左侧</h2>
				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cumque commodi aliquam saepe eaque dolor aliquid voluptate corrupti est repudiandae quibusdam sint atque. Laborum amet voluptas nesciunt consectetur ullam assumenda sed.</p>
			</div>
			<div class="right">
				<h2>右侧</h2>
				<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Beatae mollitia omnis sunt minus recusandae sequi et id ipsam ad. Facere autem similique porro et veritatis quas incidunt earum facilis distinctio.</p>
			</div>
		</div>
	</body>
</html>

  

4.column-width:指定列的宽度

例子5:限制最小列宽度

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>实现多列布局</title>
		<style type="text/css">
		    div.column{
		    	/*限制最小宽度*/
		    	column-width: 300px;
		    	-moz-column-width:300px; /* Firefox */
		    	-webkit-column-width:300px; /* Safari and Chrome */
		    }
		</style>
	</head>
	<body>
		<div class="column">
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium veritatis ea aliquid rem beatae totam repudiandae rerum atque quibusdam temporibus amet eius? Hic a amet dolore doloremque ad quaerat excepturi.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam nostrum quam laboriosam delectus earum sint neque laudantium omnis quae tempora rerum hic ipsa dolorem molestiae perspiciatis. Obcaecati asperiores architecto ea.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem expedita corporis illo enim similique reiciendis perspiciatis voluptas magni numquam obcaecati voluptatem laboriosam officiis voluptate libero esse odit alias ipsam nihil.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci vero voluptatum nulla similique animi nihil eos quas at et incidunt culpa quam magnam quasi aut totam nesciunt perferendis molestiae tempora.
		</div>
	</body>
</html>

5.column-span:指定横跨列数

column-span:1;元素应跨越一列

column-span:all;该元素应该跨越所有列

例子6:无column-span时

<!DOCTYPE html>
<html>
	<head> 
		<meta charset="utf-8"> 
		<title>column-span</title> 
		<style>
			#myDIV{
				column-count:3;
				-webkit-column-count:3;	/* 针对 Chrome 和 Safari 的代码 */
				-moz-column-count:3;	/* 针对 Firefox 的代码 */
			}
		</style>
	</head>
	<body>
		<p> 如何使H2元素横跨所有列:</p>
		<div id="myDIV">
			<h2 id="myH2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</h2>
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eos explicabo molestias hic minus voluptatem perspiciatis impedit dolor aliquam maiores cumque modi dolorem nisi? Amet numquam vero error ullam minima alias?Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus fuga reiciendis voluptatum modi iste nobis consectetur velit similique explicabo totam iusto vel cumque fugit. Qui dignissimos fuga nobis sed quo?Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque aspernatur similique minima aperiam nemo repellat sit odio adipisci iure voluptatum nulla ipsam ipsa animi voluptatibus culpa doloribus repellendus quisquam molestiae!Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi ipsa atque suscipit cupiditate quam ullam fugit eius fugiat similique modi officia voluptas voluptate blanditiis impedit quod tenetur recusandae deserunt optio.
		</div>
	</body>
</html>

例子7:有column-span:all,h2标题跨所有列

<!DOCTYPE html>
<html>
	<head> 
		<meta charset="utf-8"> 
		<title>column-span</title> 
		<style>
			#myDIV{
				column-count:3;
				-webkit-column-count:3;	/* 针对 Chrome 和 Safari 的代码 */
				-moz-column-count:3;	/* 针对 Firefox 的代码 */
			}
			h2{
				column-span:all;/*使h2跨整行*/
			}
		</style>
	</head>
	<body>
		<p> 如何使H2元素横跨所有列:</p>
		<div id="myDIV">
			<h2 id="myH2">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</h2>
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eos explicabo molestias hic minus voluptatem perspiciatis impedit dolor aliquam maiores cumque modi dolorem nisi? Amet numquam vero error ullam minima alias?Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus fuga reiciendis voluptatum modi iste nobis consectetur velit similique explicabo totam iusto vel cumque fugit. Qui dignissimos fuga nobis sed quo?Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque aspernatur similique minima aperiam nemo repellat sit odio adipisci iure voluptatum nulla ipsam ipsa animi voluptatibus culpa doloribus repellendus quisquam molestiae!Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi ipsa atque suscipit cupiditate quam ullam fugit eius fugiat similique modi officia voluptas voluptate blanditiis impedit quod tenetur recusandae deserunt optio.
		</div>
	</body>
</html>

6.columns:设置列宽和列数

columns: column-width column-count; 

例子8:设置列宽和列数 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>列宽和列数</title>
		<style type="text/css">
		    /*列宽和列数*/
	    	div.column{
			    columns: 300px 3;
		    	-moz-columns:300px 3; /* Firefox */
	    	   	-webkit-columns:300px 3; /* Safari and Chrome */
		    }
		</style>
	</head>
	<body>
		<div class="column">
			Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium veritatis ea aliquid rem beatae totam repudiandae rerum atque quibusdam temporibus amet eius? Hic a amet dolore doloremque ad quaerat excepturi.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam nostrum quam laboriosam delectus earum sint neque laudantium omnis quae tempora rerum hic ipsa dolorem molestiae perspiciatis. Obcaecati asperiores architecto ea.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem expedita corporis illo enim similique reiciendis perspiciatis voluptas magni numquam obcaecati voluptatem laboriosam officiis voluptate libero esse odit alias ipsam nihil.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci vero voluptatum nulla similique animi nihil eos quas at et incidunt culpa quam magnam quasi aut totam nesciunt perferendis molestiae tempora.
		</div>
	</body>
</html>

7.column-fill:指定如何填充列

描述
balance对列进行协调。浏览器应对列长度的差异进行最小化处理。
auto按顺序对列进行填充,列长度会各有不同。

例子9:填充列

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>填充列</title>
		<style type="text/css">
			.balance{
				column-count: 3;
				column-fill: balance;
				background-color: beige;
				height: 200px;
			}
			.auto{
				column-count: 3;
				column-fill: auto;
				background-color: aliceblue;
				height: 200px;
			}
			h2{
				column-span: all;
			}
		</style>
	</head>
	<body>
		<div class="balance">
			<h2>column-fill:balance的演示</h2>
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo nesciunt beatae officiis cupiditate consequuntur alias sunt quisquam et enim commodi dicta eligendi optio repudiandae officia odit nisi harum repellat deserunt?Lorem ipsum dolor sit amet, consectetur adipisicing elit. Explicabo consequuntur velit earum optio quod soluta vero ea nesciunt. Recusandae voluptatum laudantium reiciendis accusantium iusto blanditiis adipisci quod voluptas tempora alias.</p>
		</div>
		<div class="auto">
			<h2>column-fill:auto的演示</h2>
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis sit dolorem reiciendis sequi maiores rerum vitae doloribus omnis iste magni aperiam quasi assumenda neque aliquid excepturi quos vero adipisci necessitatibus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Explicabo consequuntur velit earum optio quod soluta vero ea nesciunt. Recusandae voluptatum laudantium reiciendis accusantium iusto blanditiis adipisci quod voluptas tempora alias.</p>
		</div>
	</body>
</html>

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值