侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 128474 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

几个知识点:锚伪类、行高、盒子模型

2024-04-27 星期六 / 0 评论 / 0 点赞 / 2 阅读 / 10115 字

学习了这么多,我终于也要开始总结最最重要的盒模型啦,不过在此之前,还是先来了解一下Css一些知识点吧:锚伪类伪类,与类选择器相似,但又有所不同。锚伪类a:link:给a标签设置没有被访问过的样式。代码

学习了这么多,我终于也要开始总结最最重要的盒模型啦,不过在此之前,还是先来了解一下Css一些知识点吧:

锚伪类

  • 伪类,与类选择器相似,但又有所不同。
  • 锚伪类
    • a:link:给a标签设置没有被访问过的样式。

      • 代码
      	a:link {		color: red;		font-size: 30px;	}
    • a:visited:给a标签设置没有被访问过的样式。

      • 代码
      	a:link {		color: red;		font-size: 30px;	}
    • a:hover:给a标签设置鼠标悬停时的样式。

      • 代码
      	a:hover {		color: red;		font-size: 30px;	}
    • a:active:给a标签设置被激活时的样式(被点击时的样式)

      • 代码
      	a:active {		color: red;		font-size: 30px;	}
  • 注意点
    • 在使用的时候一定遵守这样的顺序:a:link,a:visited,a:hover,a:active
    • 记忆方法:爱恨原则(love-ha,t,心理作用:lv-ha。买了一个lv,心里乐哈哈)
    • 有些锚伪类除了可以作用在a标签上还可以作用来其它标签上:
      • :link 只能用于a标签
      • :visited只能用于a标签
      • :hover 其它标签也可以使用这个伪类
      • :active 其它标签也可以使用这个伪类
    • 每次查看伪类效果时清除浏览器记录:浏览器中-设置-显示高级设置-清除浏览记录。
  • 做一个五彩导航(可以直接复制查看效果哦):
<!DOCTYPE html><html lang="en"><head>	<meta charset="UTF-8">	<title>Document</title>	<style>		a {			color: white;			text-decoration: none;			width: 120px;			height: 58px;			display: inline-block;			text-align: center;/*水平居中*/			line-height: 50px;/*垂直居中*/		}		.one {			background: url(images/bg1.png) no-repeat;		}		.two {			background: url(images/bg2.png);		}		.three {			background: url(images/bg3.jpg);		}		.four {			background: url(images/bg4.png);		}		.one:hover {			background: url(images/bg5.png);		}		.two:hover {			background: url(images/bg6.png);		}		.three:hover {			background: url(images/bg7.png);		}		.four:hover {			background: url(images/bg3.png);		}	</style></head><body>	<a class="one" href="#">导航1</a>	<a class="two" href="#">导航2</a>	<a class="three" href="#">导航3</a>	<a class="four" href="#">导航4</a></body></html>

行高(line-height)

  • 应用 :如果行高等于容器的高度那么元素在父容器中垂直居中。
  • 行高的定义:两行文本之间基线的距离就是做行高。
  • 自己理解与w3c定义

  • 了解文字的结构默认情况下一行文本的行高分为:上间距,文本的高度,下间距,并且上间距是等于下间距的,所以文字默认在这一行中是垂直居中的。
  • 问题:为什么行高等于容器的高度,元素在父容器中垂直居中?因为如果行高等于容器的高度,那么相当这个容器中只有这一行文本,并且容器被这一行文本占满。而本身文字在自己的一行中是垂直居中的,所以看起来就像是在容器中垂直居中。
  • 注意点line-height设置时以em、%、没有为单位的时候,是以font-size为基数设置的。(注意,em、%设置时,先计算出行高再继承到子元素;而没有设置时,先继承到子元素后计算行高。)

盒子模型

概念

在写一个html页面的时候,其实就相当于在这个页面中叠盒子。

思想:万物皆盒子。

具体内容:

盒子的挡板---------border,盒子的泡沫---------padding,盒子中的物品--------内容。,子与盒子之间的距离---------margin

border(边框)---盒子的挡板

  • border-color:边框的颜色
    • border-top-color
    • border-right-color
    • border-bottom-color
    • border-left-color
  • border-width:边框的宽度
    • border-top-width
    • border-right-width
    • border-bottom-width
    • border-left-width
  • border-style:边框的样式
    • border-top-style-border-right-style
    • border-bottom-style
    • border-left-style
    • 取值:solid:实线;dashed:虚线;dotted:点线
  • 边框的连写方法:border: border-width border-style border-color;
  • border-collapse: collapse;/去掉单元格之间的间隙/
<!DOCTYPE html><html lang="en"><head>	<meta charset="UTF-8">	<title>Document</title>	<style>		div {			width: 200px;			height: 200px;			background: red;			/*border-color: green;			border-width: 10px;			border-style: solid;*/			/*border: 10px solid green;*/			/*border-top-color: green;			border-top-width: 5px;			border-top-style: solid;*/			border-top: 5px dotted green;			/*border-right-color: blue;			border-right-width: 10px;			border-right-style: solid;*/			border-right: 10px dashed blue;			/*border-bottom-color: pink;			border-bottom-width: 15px;			border-bottom-style: solid;*/			border-bottom: 15px double pink;			/*border-left-color: yellow;			border-left-width: 20px;			border-left-style: solid;*/			border-left: 20px groove yellow;		}	</style></head><body>	<div>			</div></body></html>

使用开发人员工具查看元素的盒子模型

盒子的填充:padding(内边距)

  • 作用:设置盒子的内容与边框之间的距离。
  • 取值:
    • padding: 40px;给上右下左所有的内边距都设置了40像素的距离。
    • padding: 40px 80px;给上下内边距设置了40像素,下左右边距设置了80像素。
    • padding: 40px 60px 80px;给上边距设置了40像素,给左右设置了60像素,给下设置了80像素。
    • padding: 40px 60px 80px 100px;以顺时针方向进行设置,上为40px,右为60像素,下为80像素,右为100像素。
    • padding-top;padding-right;padding-bottom;padding-left
  • 计算盒子的大小:注意:padding(盒子中的填充物)会改变盒子的大小(跟日常生活中有区别)。
    • 计算盒子大小的公式:
    • 盒子宽:border-left-width + padding-left + width + padding-right + border-right-width
    • 盒子高:border-top-width + padding-top +height + padding-bottom + border-bottom-width
  • 特殊情况下padding不会改变盒子的大小:当一个大盒子包含一个小盒子,并且大小盒子都是块级元素,而且小盒子的宽是继承自大盒子的话,那么设置小盒子的padding-left不会改变小盒子的大小。

盒子与盒子之间的距离:margin(外边距)

  • 作用:设置盒子与盒子之间的距离。

  • 取值:

    • margin: 10px;给上右下左所有的外边距都设置了10像素的距离。
    • margin: 10px 20px;给上下外边距设置了10像素,下左右外边距设置了20像素。
    • margin: 10 px 20px 40px;给上设置10px外边距,给左右设置20px的外边距,给下设置40px外边距
    • margin:10px 20px 40px 80px;给上10,右20,下40,左80
    • maring-top;margin-right;margin-bottom;margin-left
  • margin两种特殊现象

    • 外边距的合并现象如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top,那么两个margin会发生合并现象,合并以后的值较大的那个。
    • margin的塌陷现象如果一个大盒子中包含一个小盒子,给小盒子设置margin-top大盒子会一起向下平移。
      • 解决:<strong>给大盒子设置:border;给大盒子设置:overflow:hidden。给小盒子设置浮动(还不了解浮动的话可以先查看我的下一篇博客:地址)。</strong>
  • 注意点:很多标签默认带有margin和padding,所以将来进行页面的布局的时候一定要清除这些标签的默认的margin和padding。

    • 例如:
    • body标签默认带有margin: 8px的属性
    • p标签默认带有margin: font-size 0;
    • h标签也默认带有margin-top和margin-bottom
    • ul默认带有上下的margin以及左边的padding-清除的方法:
    	* {		margin: 0;		padding: 0;		}

其他补充点

  • 取消默认状态下input点击时出现的蓝色边缘:outline-style:none;
  • 去掉单元格之间的间隙:border-collapse:collapse(一般写在table样式里)。
  • 列表里(无序列表,有序列表,自定义列表)去除默认的清单样式:list-style:none。

这些都是基础但很重要的知识哦,盒模型的思想一定要让自己深入骨髓哈,如果您还是有点模糊,建议可以看看以下这些链接哈:w3c盒模型MDN盒模型介绍

学习了这些样式,我们就可以把很多页面做的很漂亮了,试试看做一些小示例哦!在不断学习新东西的过程中,这些练习可是必不可少的呢!加油,加油!

如有错误,希望您多多指正!

广告 广告

评论区