flex布局、css3选择器

一、cs3选择器

https://www.w3school.com.cn/cssref/css_selectors.asp
Class^=,Class*= ,Class$= 其实就是一个使用正则的属性通配符selector

解释:

[attribute^=value],a[src^="https"],选择其 src 属性值以 "https" 开头的每个 <a> 元素。
[attribute*=value],a[src*="abc"],选择其 src 属性中包含 "abc" 子串的每个 <a> 元素。
[attribute*=value],a[src$="abc"],选择其 src 属性中值以 "abc" 结尾的每个 <a> 元素。
用[class*=" icon-"], [class^=icon-]经过测试发现,value可以加双引号,可以不加,效果一致。

二、flex布局语法及实战

语法:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
实战:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
https://codepen.io/LandonSchropp/pen/KpzzGo
http://jsrun.net

1.总源码

<!DOCTYPE html>
<html>
<head>
	<title>用flex布局实现骰子</title>
</head>
<style type="text/css">
	.box-face{
		display: flex;
		display: -webkit-flex; /*webkit内核浏览器必须加上-webkit*/
		justify-content: center;

		/*display: inline-flex; /*行内弹性布局*/		
		/*flex-direction:row;*/
	}


	/*骰子的面 此处利用了cs3的选择器写法:
	凡是class名的结尾为face的类都使用以下样式*/
	[class$="face"] {
	  margin: 16px;
	  padding: 4px;
	  
	  background-color: #e7e7e7;
	  width: 104px;
	  height: 104px;
	  object-fit: contain;
	  
	  box-shadow:
	    inset 0 5px white, 
	    inset 0 -5px #bbb,
	    inset 5px 0 #d7d7d7, 
	    inset -5px 0 #d7d7d7;
	  
	  border-radius: 10%;
	}


	/*骰子的圆点*/
	.pip {
	  display: block;
	  width: 24px;
	  height: 24px;
	  border-radius: 50%;
	  margin: 4px;
	  background-color: #333;
	  box-shadow: inset 0 3px #111, inset 0 -3px #555;
	}
</style>
<body>

	<div class="box-face">
		<span class="item pip"></span>		
	</div>

</body>
</html>

效果:中

justify-content: center; 此属性默认是没写就是左对齐

1.首行左对齐(默认布局)

4.四点布局

<!DOCTYPE html>
<html>
<head>
	<title>用flex布局实现骰子</title>
</head>
<style type="text/css">
	/*骰子的面 此处利用了cs3的选择器写法:
	凡是class名的结尾为face的类都使用以下样式*/
	[class$="face"] {
	  margin: 16px;
	  padding: 4px;
	  
	  background-color: #e7e7e7;
	  width: 104px;
	  height: 104px;
	  object-fit: contain;
	  
	  box-shadow:
	    inset 0 5px white, 
	    inset 0 -5px #bbb,
	    inset 5px 0 #d7d7d7, 
	    inset -5px 0 #d7d7d7;
	  
	  border-radius: 10%;
	}


	/*骰子的圆点*/
	.pip {
	  display: block;
	  width: 24px;
	  height: 24px;
	  border-radius: 50%;
	  margin: 4px;
	  background-color: #333;
	  box-shadow: inset 0 3px #111, inset 0 -3px #555;
	}



	/*容器盒子*/
	.box-face{
		/*display: inline-flex; /*行内弹性布局*/

		/*1.使用弹性布局*/
		display: flex; /*默认首行左对齐*/
		display: -webkit-flex; /*webkit内核浏览器必须加上-webkit*/

		/*2.项目排列方向:row 行:左->右| row-reverse 行:右->左| column 列:上到下| column-reverse; 列:下到上*/
		/*flex-direction:column; */

		/*3.换行排列时*/
		flex-wrap:wrap;

		/*4.主轴行内容对齐:flex-start 左,center 中,flex-end 右; 多项目:space-between | space-around;*/
		/*justify-content:flex-end;*/


		/*5.交叉轴项目对齐:flex-start 上,center 中,flex-end 下; 多项目:space-between  | space-around;*/
		/*align-items: space-between;*/


		/*7.交叉轴上内容对齐*/
		align-content:space-between;
		
	}

	.column {
	 /*8. 项目占主轴宽度*/
	  flex-basis: 100%;
	  display: flex;
	  justify-content: space-between;
	  /*align-content:flex-end;*/
	}

	.item:nth-child(2){
		/*6.项目自控交叉轴对齐方式:auto | flex-start | flex-end | center | baseline | stretch;*/
		/*align-self:center;*/
	}

	.item:nth-child(3){
		/*align-self:flex-end;*/
	}
</style>
<body>

	<div class="box-face">
		<div class="column">
			<span class="item pip"></span>
			<span class="item pip"></span>
		</div>		

		<div class="column">
			<span class="item pip"></span>
			<span class="item pip"></span>
		</div>

	</div>

</body>
</html>

6.6点

其它同4点,每个项目span多加一个

posted @ 2020-08-26 17:35  晨光曦微  阅读(223)  评论(0编辑  收藏  举报