css基础一

css简介

  • 思维导图
    在这里插入图片描述
什么是css
  • css是层叠样式表(Cascading Style Sheets)的简称。有时我们也会称之为CSS样式表或级联样式表
  • css也是一种标记语言
有什么用
  • CSS主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。
  • CSS让我们的网页更加丰富多彩,布局更加灵活自如。简单理解:CSS 可以美化 HTML , 让 HTML 更漂亮, 让页面布局更简单。
  • CSS 最大价值: 由 HTML 专注去做结构呈现,样式交给 CSS,即 结构 ( HTML ) 与样式( CSS ) 相分离

引入css(css三种引入方式)

行内样式表(行内式)

​ 行内样式表(内联样式表)是在元素标签内部的 style 属性中设定 CSS 样式。适合于修改简单样式.
​ 语法:

 <div style="color: red; font-size: 12px;">helloword</div>

​ 1.style 其实就是标签的属性
​ 在双引号中间,写法要符合 CSS 规范
​ 2.可以控制当前的标签设置样式
​ 3.由于书写繁琐,并且没有体现出结构与样式相分离的思想,所以不推荐大量使用,只有对当前元素添加简单样式的时候,可以考虑使用
​ 4.使用行内样式表设定 CSS,通常也被称为行内式引入

内部样式表(嵌入式)

​ 内部样式表(内嵌样式表)是写到html页面内部. 是将所有的 CSS 代码抽取出来,单独放到一个

 <style>
                div {
                color: red;
                font-size: 12px;
                }
 </style>

​ 1.

外部样式表(链接式)

​ 实际开发都是外部样式表. 适合于样式比较多的情况. 核心是:样式单独写到CSS 文件中,之后把CSS文件引入到 HTML 页面中使用.
​ 引入外部样式表分为两步:
1. 新建一个后缀名为 .css 的样式文件,把所有 CSS 代码都放入此文件中。
2. 在 HTML 页面中,使用 标签引入这个文件。
语法:

  <link rel="stylesheet"  href="css文件路径">

css选择器

  1. ID选择器
    #elem{} id=“elem”

    : 注:
    1. ID是唯一值,在一个页面中只能出现一次,出现多次是不符合规范的。
    2. 命名的规范,由字母、下划线、中划线、字母(并且第一个不能是数字)
    3. 驼峰写法 : searchButton (小驼峰) SearchButton (大驼峰) searchSmallButton
    短线写法:search-small-button
    下划线写法:search_small_button

  2. CLASS选择器
    .elem{} class=“elem”

    : 注:
    1. class选择器是可以复用的。
    2. 可以添加多个class样式。
    3. 多个样式的时候,样式的优先级根据CSS决定,而不是class属性中的顺序。
    4. 标签+类的写法

  3. 标签选择器(TAG选择器)
    div{}


    使用的场景:
    1. 去掉某些标签的默认样式时
    2. 复杂的选择器中,如 层次选择器

  4. 群组选择器(分组选择器)
    可以通过逗号的方式,给多个不同的选择器添加统一的CSS样式,来达到代码的复用。

 <style>
    div,
    p,
    ul>li{
        color: aqua;
    }
    </style>
  1. 通配选择器

    *{ } -> div,ul,li,p,h1,h2…{}
    注:尽量避免使用通配选择器,因为会给所有的标签添加样式,慎用。
    使用的场景:
    1. 去掉所有标签的默认样式时

  2. 层次选择器

    后代 M N { } 当前M的子孙后代
    父子 M > N { } 当前M的儿子,儿子的二不会被选中。
    兄弟 M ~ N { } 当前M下面的所有兄弟N标签
    相邻 M + N { } 当前M下面相邻的N标签,只有一个

  3. 属性选择器

    M[attr] {}
    = : 完全匹配
    *= : 部分匹配
    ^= : 起始匹配
    $= : 结束匹配
    [][][] : 组合匹配

  • 属性选择器
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性选择器</title>
    <style>
        /* 找div中带有class属性的元素将其背景改为红色 */
        div[class] {
            background-color: red;
        }

        /* 完全匹配:= */
        /* 找div中带有class为box的元素将其背景色改为绿色 */
        div[class=box] {
            background-color: green;
        }

        /* 部分匹配:*= */
        /* 等号前加个* 意思是只要在class中出现search的元素都会被选中 */
        div[class*=search] {
            background-color: hotpink;
        }

        /* 起始匹配:^= */
        /* class 中第一个位test的都会被选中 */
        div[class^=test] {
            background-color: khaki;
        }

        /* $= : 结束匹配 */
        /* class中最后一个为main的会被选中 */
        div[class$=main] {
            background-color: #2b28da;
        }

        /* [][][] : 组合匹配 */
        /* 同时拥有class和id的元素会被选中 */
        div[class][id] {
            background-color: #e7d90e;
        }
    </style>
</head>

<body>
    <div>1111111111111111111111</div>
    <div class="a">aaaaaaaaaaaaaaa</div>
    <div class="box">2222222222222222222</div>
    <div class="search">333333333333333333333</div>
    <div>bbbbbbbbbbbbbbbbb</div>
    <div class="search_button">44444444444444444</div>
    <div>55555555555555555555</div>
    <div class="test">666666666666666666666666666666</div>
    <div class="test_a">77777777777777777777777777777</div>
    <div>ccccccccc</div>
    <div class="main">88888888</div>
    <div class="main_top">9999</div>
    <div class="top_main">101010</div>
    <div class="b" id="c">1541544</div>
</body>

</html>

运行结果:
在这里插入图片描述

  1. 伪类选择器
    M:伪类{}
    :link 访问前的样式 ( 只能添加给a标签 )
    :visited 访问后的样式 ( 只能添加给a标签 )
    :hover 鼠标移入时的样式 (可以添加给所有的标签)
    :active 鼠标按下时的样式 (可以添加给所有的标签)

    注:
    一般的网站都只设置
    a{} ( link visited active ) a:hover{}
    :after、:before 通过伪类的方式给元素添加一段文本内容,使用content属性
    :checked、:disabled 、:focus 都是针对表单元素的

    结构性伪类选择器
    nth-of-type() nth-child()
    角标是从1开始的,1表示第一项,2表示第二项 | n值 表示从0到无穷大
    first-of-type:第一个元素
    last-of-type:最后一个元素
    only-of-type :只有唯一一个元素是才选择
    nth-of-type()和nth-child()之间的区别
    type : 类型
    child : 孩子

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>结构伪类选择器</title>
    <style>
        /* 给li中的第3项加背景颜色 */
        /* li:nth-of-type(3) {
            background-color: aqua;
        } */
        /* 隔行换色 */
        li:nth-of-type(2n) {
            background-color: blue;
        }

        li:nth-of-type(2n+1) {
            background-color: burlywood;
        }
    </style>
</head>

<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>

</html>

效果:
在这里插入图片描述

:focus 伪类选择器用于选取获得焦点的表单元素。
​ 焦点就是光标,一般情况 类表单元素才能获取

css元素显示模式

1、什么是元素的显示模式

定义:

​ 元素显示模式就是元素(标签)以什么方式进行显示,比如

自己占一行,比如一行可以放多个 。

作用:

​网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。

2、元素显示模式的分类

2.1、块元素

常见的块元素

<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>

标签是最典型的块元素。

块级元素的特点

  • 比较霸道,自己独占一行。
  • 高度,宽度、外边距以及内边距都可以控制。
  • 宽度默认是容器(父级宽度)的100%。
  • 是一个容器及盒子,里面可以放行内或者块级元素。

注意:

​ 文字类的元素内不能放块级元素

<p> 标签主要用于存放文字,因此 <p> 里面不能放块级元素,特别是不能放<div> 
同理, <h1>~<h6>等都是文字类块级标签,里面也不能放其他块级元素
2.2、行内元素

常见的行内元素:

<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>

​ 标签是最典型的行内元素。有的地方也将行内元素称为内联元素。

行内元素的特点:

  • 相邻行内元素在一行上,一行可以显示多个。

  • 高、宽直接设置是无效的。

  • 默认宽度就是它本身内容的宽度。

  • 行内元素只能容纳文本或其他行内元素。

注意:
链接里面不能再放链接
特殊情况链接< a> 里面可以放块级元素,但是给 <a>转换一下块级模式最安全

2.3、行内块元素

常见的行内块标签

<img />、<input />、<td>

​ 它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素。

行内块元素的特点

  • 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。
  • 一行可以显示多个(行内元素特点)。
  • 默认宽度就是它本身内容的宽度(行内元素特点)。
  • 高度,行高、外边距以及内边距都可以控制(块级元素特点)。
2.4、元素显示模式总结

​ 学习元素显示模式的主要目的就是分清它们各自的特点,当我们网页布局的时候,在合适的地方用合适的标签元素。

3、元素显示模式的转换

简单理解:

​ 一个模式的元素需要另外一种模式的特性
​ 比如想要增加链接 <a> 的触发范围。

转换方式

  • 转换为块元素:display:block;
  • 转换为行内元素:display:inline;
  • 转换为行内块:display: inline-block;

4、单行文字垂直居中的代码

解决方案:

​ 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中

简单理解:

​ 行高的上空隙和下空隙把文字挤到中间了,

​ 如果行高小于盒子高度,文字会偏上,

​ 如果行高大于盒子高度,则文字偏下。

CSS三大特性

层叠性

给相同的选择器设置相同的样式时,就会产生样式冲突,写在后面的会将前面的覆盖掉。

div {
    color: red; // 不生效
    font-size: 12px; // 生效
}

div {
    color: blue; // 生效
}

CSS继承

文字相关的样式可以被继承
布局相关的样式不能被继承 ( 默认是不能继承的,但是可以设置继承属性 inherit 值 )

CSS优先级

  1. 相同样式优先级
    当设置相同样式时,后面的优先级较高,但不建议出现重复设置样式的情况。
    2. 内部样式与外部样式
    内部样式与外部样式优先级相同,如果都设置了相同样式,那么后写的引入方式优先级高。
    3. 单一样式优先级
    style行间 > id > class > tag > * > 继承

注:

           style行间 权重 1000
            id       权重 100
            class    权重 10
            tag      权重 1
  1. !important
    提升样式优先级,非规范方式,不建议使用。( 不能针对继承的属性进行优先级的提升 )
  1. 标签+类与单类
    标签+类 > 单类
  1. 群组优先级
    群组选择器与单一选择器的优先级相同,靠后写的优先级高。
  1. 层次优先级
    1. 权重比较
    ul li .box p input{} 1 + 1 + 10 + 1 + 1
    .hello span #elem{} 10 + 1 + 100
    2. 约分比较
    ul li .box p input{} li p input{}
    .hello span #elem{} #elem{}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值