Web前端105天-day09-CSS

day09

目录

前言

一、复习

二、CSS3高级选择器

1.属性选择器

2.结构性伪类选择器

3.目标伪类选择器

三、弹性布局

1.弹性布局的概念

2.flflex容器的指定

3.容器属性之主轴方向

4.容器属性之项目在容器中的换行

5.容器属性之主轴对齐方式方式

6.容器属性之交叉轴对齐

 7.项目属性之项目排序

总结


前言

第九天学习开始

一、复习

  • 隐藏和显示
    • 完全消失 display: none
    • 隐藏占位 visibility: hidden;
    • 透明度 opacity: 0;
  • 文本和字体
    • 字号
    • 字重
    • 字体系列
    • 文本颜色
    • 行间距
    • 首行缩进
    • 文本对齐方式
    • 文本修饰线
    • 垂直对齐方式
    • 文本的省略

二、CSS3高级选择器

1.属性选择器

通过元素的属性名和值找到对应的元素,当作选择器给与样式。

  • [属性名="属性值"] {} 属性选择器
  • 其他类型选择 [ 属性名 =" 属性值 "] 这种选法更精准,权重值高一些
input[type="password"] {
    margin:15px auto;
}
  • [属性名^="属性值"] {} 以某些属性值字段开头的
  • [ 属性名 $=" 属性值 "] {} 以某些属性值字段结尾的
  • [ 属性名 *=" 属性值 "] {} 值中包含部分字段的

2.结构性伪类选择器

  • li:nth-child(n) n代表第几个子元素
  • li:nth - child(xn) x 代表几的倍数子元素
  • li:nth - child(odd) 奇数子元素
  • li:nth - child(even) 偶数子元素
  • li:last - child 最后一个子元素
  • li:first - child 第一个子元素
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			ul {
				padding: 0;
				margin: 0;
				list-style: none;
				width: 990px;
				overflow: hidden;
				background-color: yellow;
			}
			li {
				width: 240px;
				height: 200px;
				font-size: 50px;
				color: #fff;
				background-color: red;
				float: left;
				margin-bottom: 10px;
				margin-right: 10px;
			}
			
			ul li:nth-child(12){
				/* background-color:blue; */
			}
			ul li:nth-child(4n){
				margin-right: 0;
			}
			/* 奇数子元素 */
			ul li:nth-child(odd){
				background-color: green;
			}
			/* 偶数子元素 */
			ul li:nth-child(even) {
				background-color: aqua;
			}
			/* 最后一个子元素 */
			ul li:last-child {
				background-color: palevioletred;
			}
			/* 第一个子元素 */
			ul li:first-child{
				background-color: orangered;
			}
		</style>
	</head>
	<body>
		<ul>
			<li>tom</li>
			<li>box</li>
			<li>jack</li>
			<li class="end">lili</li>
			<li></li>
			<li></li>
			<li></li>
			<li class="end"></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul>
	</body>
</html>

3.目标伪类选择器

  •  理解这个选择器是如何运作的,因为之后很多的css框架中使用到了这个理念 
  • 一定要用到 a a 有一个锚点,通过其他元素的 id ,放到 a href 中去关联有这个 id 的元素
  • div:target 目标元素被触发激活的时候
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			div {
				width: 300px;
				height: 200px;
				background-color: yellow;
				display: none;
			}
			/* div作为目标被触发的时候改变样式 */
			div:target {
				display: block;
			}
		</style>
	</head>
	<body>
		<a href="#xq">商品详情</a>
		<a href="#pj">商品评价</a>
		<div id="xq">商品详情的相关内容目标详情详情</div>
		<div id="pj">商品评价的相关内容目标评价评价</div>
	</body>
</html>

三、弹性布局

1.弹性布局的概念

  • 弹性布局也成为了flflex布局,flflexbox,弹性盒子,一维布局。
  • flflex 的底层是浮动,帮你把元素横向,竖向排列的方式都当做布局的格式供你选择。使用 flflex 相关的属性,可以轻松创建各种布局排列模式。

2.flflex容器的指定

  • 容器,会控制其内部项目元素排列方式。容器有容器的属性
  • 项目,进行实际排列就叫项目,项目有项目的属性
  • 当容器已经是 flflex 盒子的时候,项目在容器中浮动,清除浮动就都会失效,同时所有的项目在弹性容器中都会变成块级元素,前提是容器指定了display flflex 属性
  • 换句话说,只要是想把元素变成弹性容器,必须有 display 相关的属性,如 flex inline - flex

3.容器属性之主轴方向

  • 主轴的含义是,项目在容器中的排列走向,也是走向轴的方向。
  • 主轴根据项目的排列走向分成四个方向:
    • flflex-direction: row; 默认,不写也行,正向行模式 float left
    • flflex-direction: row-reverse; 反向行模式,相当于 float right
    • flflex-direction: column; 正向列模式
    • flflex-direction: column-reverse; 反向列模式

4.容器属性之项目在容器中的换行

  • flflex-wrap: nowrap; 默认不换行,不写也行,不换行会挤压主轴方向的尺寸
  • flflex-wrap: wrap; 换行
  • flflex-wrap: wrap-reverse; 反向换行(用的少)

5.容器属性之主轴对齐方式方式

对齐方式是根据主轴的方向决定的位置

  • justify-content: flflex-start; 起点对齐
  • justify-content: flflex-end; 终点对齐
  • justify-content: center; 居中对齐
  • justify-content: space-between; 两端对齐,在主轴的一行 / 列中,第一个元素贴着起点,最后一个元素贴着终点,其他元素的间距自动计算,相等间距
  • justify-content: space-around; 元素的左右两侧间距相等,相邻兄弟元素之间的间距会*2展示
  • justify-content: space-evenly; 平均间距

6.容器属性之交叉轴对齐

交叉轴上必须有富余空间。

  • align-items: center; 在交叉轴上居中对齐
  • align-items: flflex-start; 交叉轴起点对齐
  • align-items: flflex-end;交叉轴终点对齐
  • align-items: stretch; 项目没有尺寸的时候默认撑满,一旦给了其他的交叉轴属性,默认值将被替换掉

【练习】

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			* {
				margin: 0;
				padding: 0;
			}
			body {
				background-color: #dfe0e2;
			}
			.center {
				width: 1000px;
				margin: auto;
				display: flex;
				justify-content: space-between;
			}
			.item {
				width: 200px;
				background-color: #fff;
			}
			.item img {
				width: 200px;
			}
			.item h3 {
				color: #fb7299;
				margin: 10px;
			}
		</style>
	</head>
	<body>
		<div class="center">
			<div class="item">
				<img src="./img/1.png" alt="">
				<p>BILIBILIGOODS 小电视 滑雪积木 拼装模型</p>
				<h3>¥129</h3>
			</div>
			<div class="item">
				<img src="./img/2.png" alt="">
				<p>BILIBILIGOODS 小电视 滑雪积木 拼装模型</p>
				<h3>¥129</h3>
			</div>
			<div class="item">
				<img src="./img/3.png" alt="">
				<p>BILIBILIGOODS 小电视 滑雪积木 拼装模型</p>
				<h3>¥129</h3>
			</div>
			<div class="item">
				<img src="./img/4.png" alt="">
				<p>BILIBILIGOODS 小电视 滑雪积木 拼装模型</p>
				<h3>¥129</h3>
			</div>
		</div>
	</body>
</html>

 7.项目属性之项目排序

  • order属性是项目属性,实际作用不是改变标签结构,而是改变显示的排序
  • order0 默认值,大家都是0就按照标签结构顺序走
  • 值为整数数值,可以为负值
  • 值越大排序越靠后,值越小排序越靠前

总结

第九天学习结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值