ACwing学习——CSS(1)

139 阅读4分钟

本文参与4月更文挑战,打卡day6,第六篇

CSS(层叠样式表)

1. 样式定义方式

static文件夹:用于存储一些资源。

行内样式表

是直接定义在html标签中的,用到的是style属性,例如:

<img src="/images/mountain.jpg" alt="" width="300">就可以写成下行这样

<img src="/images/mountain.jpg" alt="" style="width: 300px; height: 200px;">

一个style属性中可以书写多个css属性,每两个之间用分号隔开。

css属性的基本写法是属性:属性值

内部样式表

在head标签中加入一对style标签,在style标签中书写css样式。

可以对一个页面中的一类标签进行css样式设置

一个小问题 .jpg图片下载到本地再加到img标签里显示不了(下图是把文件名改成了.png后缀名之后尝试的代码,依旧显示不了 但是有时候今天又尝试了一下.jpg又可以显示了)

该问题可以参考这篇CSDN的文章

外部样式表(用的多)

作用范围:多个页面可以用link标签引入某些页面

定义在css样式文件中,通过选择器影响对应标签。

在html文件中书写link标签,href属性书写样式所在的文件地址来添加样式到html页面。

需要多个文件使用同一样式的时候只需要link需要的css文件即可

需要一个文件使用多个样式的时候也只

需要link需要的css文件即可

link的type属性可以不写,部分浏览器不写不生效的时候加上即可

又一个小问题 没有生效,不知道为什么(但是今天照着重新写了一遍也是又实现了样式的)

2. 选择器

标签选择器

id选择器

一般一个样式对应一个ID,不重复使用

类选择器

html文件中书写class属性,其属性值位置可以书写多个class名称,各个class名称之间用空格隔开,在css文件中用.+class名定位到这个样式。

伪类选择器

用于定义元素特殊状态

链接为类选择器:(也可以用于button按钮)

:link链接访问前的样式

:visited链接访问后的样式

:hover鼠标悬停时的样式 [冒号和前面的内容不要有空格]

:active鼠标点击后长按时的样式

:focus聚焦后的样式 (input框点击之后的样式)

位置伪类选择器:

:nth-child(n)选择是其父标签第n个子元素的所有元素(理解成一种状态)

理解方法:可以看成一个函数,给定一个数字n,会返回一个布尔值(去判断)这个元素是不是父节点的第n个子节点,如果是就显示对应样式

(找p标签的父节点的第二个子节点)

其中n也可以写成an+b的样式,n取非负整数

e.g. 第3的倍数个元素,写3n

第奇数个元素可以写odd替换n

第偶数个元素可以写even替换n

点击链接切换到页面内的内容:使用a标签的herf属性和要连接的标签添加id属性来实现链接,注意herf属性值是#+id属性值

点击链接前后url的变化:

目标伪类选择器:

:target当url指向该元素时生效

当以下效果触发时,使用这个选择器可以更改id=''myp''的标签的样式p:target

复合选择器

element1, element2:同时选择元素element1和元素element2

element.class:选则包含某类的element元素。 class部分写类名,也可以写多个类名全部用 .class书写即可

element1 + element2:选择紧跟element1element2元素。

element1 element2:选择element1内的所有element2元素。父元素内的所有子元素

element1 > element2:选择父标签是element1的所有element2元素。父元素为目标值的子元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p{
            width:50px;
            height:70px;
            background-color: lightgreen;
        }

        p:nth-child(2n+1) {
            background-color: lightblue;
        }

        p:target{
            transform:scale(1.2);    /*将标签的大小变成原来的1.2倍*/
            color:orange;          /*将标签的字体颜色变成橘色*/
            transition:3000ms;        /*让改变以多少ms进行*/
        }
    </style>
</head>
<body>
    <a href="#myp">我的标签</a>

    <p>1</p>
    <p>2</p>
    <p>3</p>
    <p>4</p>
    <p>5</p>
    <p id="myp">6</p>
    <p>7</p>
    <p>8</p>
</body>
</html>
通配符选择器
  • * 选择所有标签
  • [attribute] 选择具有某个属性的所有标签 e.g.input[id]筛选有id的input标签并赋予样式
  • [attribute=value] 选择attribute值为value的所有标签 e.g.input[id=number]筛选id="number"的input标签并赋予样式
伪元素选择器

将特定内容当做一个元素,选择这些元素的选择器被称为伪元素选择器。

::first-letter:选择第一个字母

::first-line:选择第一行

::selection:选择已被选中的内容

::after:可以在元素后插入内容

::before:可以在元素前插入内容

样式渲染优先级

权重大小,越具体的选择器权重越大:!important > 行内样式 > ID选择器 > 类与伪类选择器 > 标签选择器 > 通用选择器

  • 权重相同时,后面的样式会覆盖前面的样式
  • 继承自父元素的权重最低