CSS基础

CSS基础

1. 编写位置

使用CSS来修改元素的样式:

(1) 第一种方式(内联样式,行内样式):

-在标签内部通过style属性来设置元素的样式

<p style="color: green; font-size: 100px;">广州大学</p>

(px:像素)

(2) 第二种方式(内部样式表)

-将样式编写到head中的style标签里

-更加方便对样式进行复用

​ 但只能对一个网页起作用,里边的样式不能跨页面进行复用

<style>
        h1{
            color: yellow;
            font-size: 100px;
        }
 </style>

(3)第三种方式(外部样式表)最佳实践

-可以将CSS样式编写到一个外部的CSS文件中,然后通过link标签来引入外部的CSS文件

-可以在不同页面之间使用

-将样式编写到外部的CSS文件中,可以使用到浏览器的缓存机制,从而加快页面的加载速度

1616749286579

<link rel="stylesheet" href="./CSS/Style.css">
    <h2>网络192</h2>

2. 基本语法

​ 选择器 声明块

选择器:通过选择器可以选中页面中的指定元素

​ 比如p作用就是选中页面中所有的p元素

声明块:通过声明块来指定要为元素设置的样式

​ 声明块由一个一个的声明组成

​ 声明是一个名值对结构:一个样式名对应一个样式值,名和值之间以:连接 , 以;结尾

3. 常用选择器

通配选择器

    <style>
        *{
            font-size: 50px;
        }
    </style>

id选择器

作用:根据元素的id属性值选中一个元素

语法:#id属性值{}

<style>
        #red{
            color:green;
            font-size:50px;
        }
   </style> 

<p id="red">广州大学计算机科学与网络工程学院</p>

注:id只能是一个值,需多值用class解决

类选择器

作用:根据元素的class属性值选中一组元素

语法:.class属性值

<style>      
        .a1{
            color:hotpink;
            font-size:100px;
        }
   </style> 


    <p class="a1 a2">辜垂涛</p>

class可以重复使用,可以通过class属性来为元素分组,可以同时为一个元素指定多个class属性

元素选择器

作用:根据标签名来选中指定的元素

语法:标签名{}

   <style>
        #red{
            color:green;
            font-size:50px;
        }
        .a1{
            color:hotpink;
            font-size:100px;
        }
        div{
            color:indianred;
            font-size: 100px;
        }
   </style> 


   <div>谁最牛啊谁最棒</div>

复合选择器

1. 交集选择器

作用:选中同时符合多个条件的元素

语法:选择器1选择器2选择器3选择器n{}

**注意:**交集选择器如果有元素选择器,就必须使用元素选择器开头

    <style>
        div.a{
            color:lawngreen;
            font: size 100px;
        }
        .b.a{
            color:red;
        }
    </style>

    <p class="a b c">广州大学城</p>
    <div class = "a">广东工业大学</div>
2. 并集选择器

作用:同时选择多个选择器对应的元素

语法:选择器1,选择器2,选择器3,选择器n{}

    <style>
        .b,div{
            color:lightblue;
        }
    </style>

关系选择器

父元素:直接包含子元素的元素

子元素:直接被父元素包含的元素

祖先元素:直接或间接包含后代元素的元素叫作祖先元素(一个元素的父元素也是它的祖先元素

后代元素:直接或间接被祖先元素包含的元素叫做后代元素(子元素也是后代元素)

兄弟元素:拥有相同父元素的元素是兄弟元素

子元素选择器:

作用:选中指定父元素的指定子元素

语法:父元素>子元素

    <style>
        div.box>span{
            color:red;
        }
    </style>
后代选择器:

作用:选中指定元素内的指定后代元素

语法:祖先 后代 (中间一个空格)

    <style>
        div span{
            color:blue;
        }
    </style>
兄弟选择器:

选择下一个兄弟 语法:前一个+下一个 (只有紧挨着下一个)

选择下边所有的兄弟 语法:兄~弟

<div class="box">
        <h1>容祖儿</h1>
        <span>由这一分钟开始记起春风秋雨间</span> 
        <span>由这一分钟开始记起春风秋雨间</span> 
        <span>由这一分钟开始记起春风秋雨间</span> </div>

       h1+span{
            color:blue;
        }/*只变化一句*/

        h1~span{
            color:brown;
        }/*变化全部*/

属性选择器

[属性名] 选择含有指定属性的元素

[属性名=属性值] 选择含有指定属性和属性值的元素

[属性名^=属性值] 选择属性值以指定值开头的元素

[属性名$=属性值] 选择属性值以指定值结尾的元素

[属性名*=属性值] 选择属性值中含有某值的元素

    <style>
        p[title]{
            color: blue;
            font-size:50px;
        }
        p[title=gct]
        p[title^=g]
        p[title$=t]
        p[title*=c]
    </style>

<body>
    <p title="gct">广州大学</p>
</body>

title效果

1

伪类选择器

(不存在的类,特殊的类)

-伪类用来描述一个元素的特殊状态

如:第一个子元素、被点击的元素、鼠标移入的元素…

-伪类一般情况下都是使用" : "开头

:first-child 第一个子元素
:last-child 最后一个子元素
:nth-child() 选中第n个子元素
	特殊值:
	n 第n个 n的范围0到正无穷
	2n 或 even 表示选中偶数位的元素
	2n+1或 odd 表示选中奇数位的元素
	
	- 以上这些伪类都是根据所有的子元素进行排序

	:first-of-type
	:last-of-type
	:nth-of-type()
		- 这几个伪类的功能和上述相似,不同点是他们是在同类型元素中进行排序

	:not() 否定伪类
		- 将符合条件的元素从选择器中去除

    <style>
        ul>li:first-child{
            color:red;           
        }
        
        ul>li:nth-child(4){
            color:blue;
        }
        
        ul>li:not(:nth-of-type(4))
        {
            color:green;
        }
    </style>

<body>
    <ul>
        <li>广州大学</li>
        <li>广州大学</li>
        <li>广州大学</li>
        <li>广州大学</li>
        <li>广州大学</li>
    </ul>
</body>

4. 超链接的伪类

:link 用来表示没访问过的链接

:vistited 用来表示访问过的链接(由于隐私的原因,所以visited这个伪类只能修改链接的颜色)

:hover 用来表示鼠标移入的状态

:active 用来表示鼠标点击

    <style>
        a:link{
            color:green;
        }
        a:visited{
            color:grey;
        }
        a:hover{
            color:hotpink;
        }
        a:active{
            color:yellow;
        }
    </style>

5. 伪元素

表示页面中一些特殊的并不真实的存在的元素(特殊的位置)

伪元素使用 :: 开头

::first-letter 表示第一个字母

::first-line 表示第一行

::selection 表示选中的内容

::before 元素的开始

::after 元素的最后

​ - before 和 after 必须结合content属性来使用

    <style>
        p::first-letter{
            font-size:50px;
        }
        p::first-line{
            background-color: teal;
        }
        p::selection{
            background-color: red;
        }
        div::before{
            content:'辜垂涛';/*表示添加内容*/
            color:violet;
        }
        div::after{
            content:'网络192';
            color:red;
        }
    </style>

<body>
    <div>helloworld</div>
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Commodi eaque dolorum rerum? Quo, omnis dignissimos suscipit ipsa et blanditiis voluptate, quas praesentium, quia neque temporibus. Quos odio accusantium animi non!</p>
</body>

1616993558870

before和after 常用

6. 继承

样式的继承,我们为一个元素设置的样式同时也会应用到它的后代元素上。

继承是发生在祖先后代之间的。

继承的设计是为了方便开发,利用基础我们可以将一些通用的样式统一设置到共同的祖先元素上,这样就只需要设置一次。

注意:并不是所有的样式都会被继承,比如背景相关的,布局相关等的这些样式都不会被继承。

查看是否继承的方法:

image-20210330161727603

样式表

每一个样式都有一个表格:

bakcground-color

image-20210330162016298

注:

嵌套规则:
1、块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。
2、块级元素不能放在p里面。
3、有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt
4、li内可以包含div

    <style>
        body{
            font-size: 50px;
        }
        p{
            color:rebeccapurple;
            background-color: red;
        }
    </style>

<body>
    <div>
        <span>我是div中的span</span>
    </div>
    <p>
        我是一个p元素
        <span>我是p元素中的span</span>
    </p>
</body>

image-20210330162938505

7.选择器的权重

样式的冲突:当我们通过不同的选择器,选中相同的元素,并且为相同的样式设置不同的值时,此时就发生了样式的冲突。

发生样式冲突时,应用哪个样式由选择器的权重(优先级)决定。

选择器的权重:

​ 内联样式 1,0,0,0

​ id选择器 0,1,0,0

​ 类和伪类选择器 0,0,1,0

​ 元素选择器 0,0,0,1

​ 通配选择器 0,0,0,0(通配选择器*)

​ 继承的样式 没有优先级

(比较优先级时,需要将所有的选择器的优先级进行相加计算,最后优先级越高,则越优先显示【分组选择器(并集选择器)是单独计算的】)

image-20210330164839454

image-20210330164854145

选择器的累加不会超过其最大的数量级,类选择器在高也不会超过id选择器

样式没有显示时优先考虑优先级

    <style>
        div{
            color:yellow;
        }
        .red{
            color:red;
        }
        #box1{
            color:violet;
        }
    </style>

<body>
    <div id="box1" class="red" style="color: green;">我是一个div</div>
</body>
/*结果是内联样式设置的颜色(不推荐内联样式,优先级太高无法覆盖掉)*/

如果优先级计算后相同,此时则优先使用靠下的样式

    <style>
        .red{
            color:red;
            background-color: green;
        }
        .red{
            background-color: blue;
        }
    </style>

image-20210330165348247

通配选择器和继承的样式对比

    <style>
        *{
            font-size: 50px;
        }
        div{
            font-size:100px;
        }
    </style>
</head>
<body>
    <div id="box1" class="red">我是一个div 
        <span>我是div中的span</span>
    </div>
</body>

image-20210330170126212

可以在某一个样式后边添加 !important,则此时样式会获得最高的优先级,甚至超过内联样式。

注意:在开发中一定要慎用!难修改

    <style>
        .red{
            color:red;
            background-color: green;
        }
        .red{
            background-color: blue !important;
        } 
    </style>

image-20210330170916449

8.单位

长度单位:

像素:(1px=0.04cm,1cm=25px)

​ -屏蔽(显示器)实际上是由一个一个的小点构成

​ -不同屏幕的像素大小是不同的,像素越小的屏幕显示的效果越清晰

​ -所以同样的200px在不同的设备下显示效果不一样

百分比:

​ -也可以将属性值设置为相对于其父元素属性的百分比

​ -设置百分比可以使子元素跟随父元素的改变而改变

    <style>
        .box1{
            width:200px;
            height: 200px;
            background-color: orange;
        }
        .box2{
            width: 50%;
            height: 50%;
            background-color: rebeccapurple;
        }
    </style>

<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
</body>

em

​ -em是相对于元素的字体大小来计算的

​ -1em=1font-size

​ -em会根据字体大小的改变而改变

    <style>
        .box3{
            font-size: 20px;
            width: 10em;
            height: 10em;
            background-color: royalblue;
        }
    </style>

(10*20=200px)

rem

​ -rem是相对于根元素(html的像素)的字体大小来计算

​ 根元素修改:

    <style>
        html{
            font-size: 10px;
        }
    </style>

9.颜色

颜色单位:

​ 在CSS中可以直接使用颜色来设置各种颜色:比如:red、orange…(不方便)

RGB值:

  • RGB通过三种颜色的不同浓度来调配出不同的颜色
  • R red,G green,B blue
  • 每一种颜色的范围在 0-255 (0% - 100%)之间
  • 语法:rgb(红色,绿色,蓝色)
    <style>
        .box1{
            width: 200px;
            height: 200px;
            background-color: rgb(255, 0, 0);
            background-color: rgb(0, 255, 0);
            background-color: rgb(0, 0, 255);
            background-color: rgb(255, 255, 255);
            background-color: rgb(0, 0, 0);
        }
    </style>

image-20210330183637824

RGBA:

  • 就是在rgb的基础上增加一个a表示不透明度
  • 1表示不透明,0表示完全透明,.5半透明

image-20210330183810069

十六进制的RGB值:

  • 语法:#红色绿色蓝色

  • 颜色浓度通过00-ff

  • 如果颜色两位两位重复可以进行简写

    ​ #aabbcc --> #abc

    <style>
        .box1{
            width: 200px;
            height: 200px;
            background-color: #00ff00;
            background-color: #ff0000;
            background-color: #f00;    
        }
    </style>

image-20210330184058349

HSL值、HSLA值:

H 色相:0 - 360(一个环360°)

S 饱和度(颜色的浓度 ):0% - 100%

L 亮度(颜色的亮度):0%-100%

A 不透明度

image-20210330185042950

55);
background-color: rgb(0, 0, 0);
}


[外链图片转存中...(img-g37LmtyO-1620132762660)]

### RGBA:

- 就是在rgb的基础上增加一个a表示不透明度
- 1表示不透明,0表示完全透明,.5半透明

[外链图片转存中...(img-D67RRWQd-1620132762661)]



### 十六进制的RGB值:

- 语法:#红色绿色蓝色

- 颜色浓度通过00-ff

- 如果颜色两位两位重复可以进行简写

  ​	#aabbcc --> #abc

```html
    <style>
        .box1{
            width: 200px;
            height: 200px;
            background-color: #00ff00;
            background-color: #ff0000;
            background-color: #f00;    
        }
    </style>

[外链图片转存中…(img-mdAikM9a-1620132762662)]

HSL值、HSLA值:

H 色相:0 - 360(一个环360°)

S 饱和度(颜色的浓度 ):0% - 100%

L 亮度(颜色的亮度):0%-100%

A 不透明度

[外链图片转存中…(img-eMcEuyxB-1620132762662)]

image-20210330185222098

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值