CSS

CSS

一, CSS的三种定义方式

1.行内样式

每个HTML标签都有这个属性style

行内样式的语法格式:style=“key1:value1;key2:value2;…”

2.内嵌样式

	<style>
		h1 {
			border: 5px solid red;
			font-weight: 100;
			color: green;
		}
	</style>

3.外部引用

外部引入一般都会写在最前面

<link rel="stylesheet" href="css/1-css.css"/>

二,CSS选择器

1.标签选择器

作用:把页面上所有这个标签都应用这个样式。一般写通用样式就会用标签选择器。

		p {
			color: red;
		}

2.id选择器

id属性每个标签都有,这个标签理论是唯一的,样式一般都是唯一指向某个标签

一般用在这个标签有一个唯一的样式

#p5 {
			color: blueviolet;
			font-size: 2em;
		}

3.类选择器(★★★))

class可以重复

		.pp23 {
			font-weight: 900;
		}

4.父子选择器

  1. 空格隔开:只要是当前标签下面的标签就可以了

div下所有的p标签,包括子类的子类标签也可以选择

			div p {
			  background-color: yellow;
			}
  1. 小于号隔开:只能识别当前标签的子标签。

​ div的子p标签可以识别,子标签的子标签无法识别。

			div > p {
			  background-color: yellow;
			}
			...
			1 2 4变颜色
			<p>div 中的段落 1。</p>
			<p>div 中的段落 2。</p>
			<section><p>div 中的段落 3。</p></section> 非子但属后代
			<p>div 中的段落 4。</p>
  1. +隔开:相邻兄弟选择器。识别当前标签的兄弟标签。

兄弟(同级)元素必须具有相同的父元素,“相邻”的意思是“紧随其后”。

  1. ~隔开:相邻兄弟选择器。识别当前元素的后面所有的兄弟标签。
父子选择器示例示例描述
★空格隔开:div p选择
元素内的所有

元素

★>隔开:div > p选择其父元素是
元素的所有

元素

+隔开:div + p选择所有紧随
元素之后的

元素

~隔开:p ~ ul选择前面有

元素的每个

  • 元素

5.伪类选择器(★★★)

某种特定的条件下触发样式

		a:link {color:#000000;}      /* 未访问链接*/
		a:visited {color:#00FF00;}  /* 已访问链接 */
		a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
		a:active {color:#0000FF;}  /* 鼠标点击时 */
		
  1. :hover:这是最常见的伪类选择器之一,用于选择鼠标悬停在元素上时的状态。通过:hover选择器,我们可以在鼠标悬停在元素上时应用特定的样式,例如改变背景颜色或添加阴影效果。
  2. :active:这个伪类选择器用于选择元素被激活或点击时的状态。一般来说,当用户点击一个元素时,它会立即变为:active状态,直到用户释放鼠标按钮。通过:active选择器,我们可以为点击时的元素应用样式,例如改变文字颜色或添加动画效果。
  3. :focus:这个伪类选择器用于选择当前获得焦点的元素。当用户在一个可编辑的输入框或文本区域中输入时,该元素会获得焦点。通过:focus选择器,我们可以为获得焦点的元素应用样式,例如改变边框颜色或添加特殊效果。
  4. :first-child:这个伪类选择器用于选择父元素的第一个子元素。通过:first-child选择器,我们可以为第一个子元素应用样式,例如改变字体大小或添加特定的边距。
  5. :last-child:这个伪类选择器用于选择父元素的最后一个子元素。通过:last-child选择器,我们可以为最后一个子元素应用样式,例如改变背景颜色或添加特定的边框。
  6. :nth-child(n):这个伪类选择器用于选择父元素的第n个子元素。通过:nth-child(n)选择器,我们可以为特定位置的子元素应用样式,例如改变文字颜色或添加动画效果。其中n可以是一个具体的数字,也可以是关键字odd(奇数)或even(偶数)。
  7. :nth-of-type(n):这个伪类选择器用于选择父元素中特定类型的第n个子元素。通过:nth-of-type(n)选择器,我们可以为特定类型的子元素应用样式,例如改变字体大小或添加特定的边距。
  8. :not(selector):这个伪类选择器用于选择不符合特定选择器的元素。通过:not选择器,我们可以排除某些元素,然后为其他元素应用样式,例如隐藏特定的元素或改变它们的背景颜色。

6.属性选择器

选择这个标签所有具有该属性的元素。

选择器例子例子描述
[attribute][target]选择带有 target 属性的所有元素。
★[attribute=value][target=_blank]选择带有 target=“_blank” 属性的所有元素。
★[attribute~=value][title~=flower]选择带有包含 “flower” 一词的 title 属性的所有元素。
[attribute|=value][lang|=en]选择带有以 “en” 开头的 lang 属性的所有元素。
[attribute^=value]a[href^=“https”]选择其 href 属性值以 “https” 开头的每个 元素。
[attribute$=value]a[href$=“.pdf”]选择其 href 属性值以 “.pdf” 结尾的每个 元素。
★[attribute*=value]a[href*=“w3school”]选择其 href 属性值包含子串 “w3school” 的每个 元素。

7.通用选择器(★★★)

选择页面上的所有的 HTML 元素。

  * {   
  	text-align: center;
	color: blue;
		  }

8.分组选择器(★★★)

同时改变多个标签样式

h1, h2, p {
	text-align: center;
	color: red;
	}

三. CSS样式

1.背景(background)

1.1 背景颜色(background-color)

属性指定元素的背景色。

1.opacity 属性指定元素的透明度。取值范围为 0.0 - 1.0。值越低,越透明:

div {
  background-color: green;
  opacity: 0.3;
}
1.2 背景图像(background-image)

属性指定用作元素背景的图像。

1.3 背景重复(background-repeat)

repeat(重复)

默认情况下,background-image 属性在水平和垂直方向上都重复图像。

如果上面的图像仅在水平方向重复 (background-repeat: repeat-x;),则背景看起来会更好:

body {
  background-image: url("gradient_bg.png");
  background-repeat: repeat-x;
}

image-20231225114036388

CSS background-repeat: no-repeat 还可指定只显示一次背景图像:

body {
  background-image: url("tree.png");
  background-repeat: no-repeat;
}

background-position 属性用于指定背景图像的位置。

把背景图片放在右上角:

body {
  background-image: url("tree.png");
  background-repeat: no-repeat;
  background-position: right top;
}
1.4 背景附着(background-attachment)

background-attachment 属性指定背景图像是应该滚动还是固定的(不会随页面的其余部分一起滚动)

body {
  background-image: url("tree.png");
  background-repeat: no-repeat;
  background-position: right top;
  background-attachment: fixed;
}

image-20231225115419139

指定背景图像应随页面的其余部分一起滚动:

body {
  background-image: url("tree.png");
  background-repeat: no-repeat;
  background-position: right top;
  background-attachment: scroll;
}

2.边框(border)

border 属性允许您指定元素边框的样式、宽度和颜色。

2.1 边框类型(border-style)

border-style 属性指定要显示的边框类型。

允许以下值:

  • dotted - 定义点线边框
  • dashed - 定义虚线边框
  • solid - 定义实线边框
  • double - 定义双边框
  • groove - 定义 3D 坡口边框。效果取决于 border-color 值
  • ridge - 定义 3D 脊线边框。效果取决于 border-color 值
  • inset - 定义 3D inset 边框。效果取决于 border-color 值
  • outset - 定义 3D outset 边框。效果取决于 border-color 值
  • none - 定义无边框
  • hidden - 定义隐藏边框

border-style 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。

		<style>
			p.dotted {border-style: dotted;}
			p.dashed {border-style: dashed;}
			p.solid {border-style: solid;}
			p.double {border-style: double;}
			p.groove {border-style: groove;}
			p.ridge {border-style: ridge;}
			p.inset {border-style: inset;}
			p.outset {border-style: outset;}
			p.none {border-style: none;}
			p.hidden {border-style: hidden;}
			p.mix {border-style: dotted dashed solid double;}
		</style>
				......

			<p class="dotted">点状边框。</p>
			<p class="dashed">虚线边框。</p>
			<p class="solid">实线边框。</p>
			<p class="double">双线边框。</p>
			<p class="groove">凹槽边框。</p>
			<p class="ridge">垄状边框。</p>
			<p class="inset">3D inset 边框。</p>
			<p class="outset">3D outset 边框。</p>
			<p class="none">无边框。</p>
			<p class="hidden">隐藏边框。</p>
			<p class="mix">混合边框。</p>

image-20231225145306398

2.2 边框宽度(border-width)

border-width 属性指定四个边框的宽度。

可以将宽度设置为特定大小(以 px、pt、cm、em 计),

也可以使用以下三个预定义值之一:thin、medium 或 thick:

<style>
    p.dotted {border-style: dotted;}
    p.dashed {border-style: dashed;}
    p.solid {border-style: solid;}
    p.double {border-style: double;}
    p.groove {border-style: groove;}
    p.ridge {border-style: ridge;}
    p.inset {border-style: inset;}
    p.outset {border-style: outset;}
    p.none {border-style: none;}
    p.hidden {border-style: hidden;}
    p.mix {border-style: dotted dashed solid double;}
</style>
			...
    <p class="dotted">点状边框。</p>
    <p class="dashed">虚线边框。</p>
    <p class="solid">实线边框。</p>
    <p class="double">双线边框。</p>
    <p class="groove">凹槽边框。</p>
    <p class="ridge">垄状边框。</p>
    <p class="inset">3D inset 边框。</p>
    <p class="outset">3D outset 边框。</p>
    <p class="none">无边框。</p>
    <p class="hidden">隐藏边框。</p>
    <p class="mix">混合边框。</p>

image-20231225145506165

2.3 边框各边

可用于指定每个边框(顶部、右侧、底部和左侧):

p {
  border-top-style: dotted;
  border-right-style: solid;
  border-bottom-style: dotted;
  border-left-style: solid;
}![image-20231225151446681](https://s2.loli.net/2023/12/25/cPFX4UxhkdY7Lfs.png)

2.4 简写边框属性

border 属性是以下各个边框属性的简写属性:

  • border-width
  • border-style(必需)
  • border-color
p {
  border: 5px solid red;
}

左边框

p {
  border-left: 6px solid red;
  background-color: lightgrey;
}

3.外边距(margin)

margin 属性用于在任何定义的边框之外,为元素周围创建空间。

内边距(padding)同理

简写属性示例工作原理
如果 margin 属性有四个值margin: 25px 50px 75px 100px;上外边距是 25px
右外边距是 50px
下外边距是 75px
左外边距是 100px
如果 margin 属性设置三个值margin: 25px 50px 75px;上外边距是 25px
右和左外边距是 50px
下外边距是 75px
如果 margin 属性设置两个值margin: 25px 50px;上和下外边距是 25px
右和左外边距是 50px
如果 margin 属性设置了一个值margin: 25px;所有四个外边距都是 25px
auto 值margin: auto;使元素在其容器中水平居中。
然后,该元素将占据指定的宽度
并且剩余空间将在左右边界之间平均分配
外边距合并

当两个垂直外边距相遇时,它们将形成一个外边距。

合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

image-20231225151156115

4.高度和宽度(heightwidth)

  • auto - 默认。浏览器计算高度和宽度。
  • length - 以 px、cm 等定义高度/宽度。
  • % - 以包含块的百分比定义高度/宽度。
  • initial - 将高度/宽度设置为默认值。
  • inherit - 从其父值继承高度/宽度。
height设置元素的高度。
max-height设置元素的最大高度。
max-width设置元素的最大宽度。
min-height设置元素的最小高度。
min-width设置元素的最小宽度。
width设置元素的宽度。

-------------- |
| max-height | 设置元素的最大高度。 |
| max-width | 设置元素的最大宽度。 |
| min-height | 设置元素的最小高度。 |
| min-width | 设置元素的最小宽度。 |
| width | 设置元素的宽度。 |

​css笔记 本文章参考于 W3C 学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值