前端CSS样式零基础教学总结,UI、前端开发都适用

简介: 前端CSS样式零基础教学总结,UI、前端开发都适用

1.CSS介绍

CSS样式学习宝典,关注点赞加收藏,防止迷路哦


层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。

CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。


web项目开发中css的位置

css主要一般都是由前端开发工程师,或者UI设计师完成的.

css3是目前的最新版本


学习工具

学习css一般有三种工具提供给我们开发:


代码编辑器本身一般自带提示或者语法提示.


css手册,内部提供提供了所有的样式属性和样式值的使用参考,甚至包括一些演示代码.

http://css.doyoe.com


浏览器也内置了一些css辅助工具给我们学习和开发.

F12,或者Ctrl+shift+i,或者鼠标右键,检查代码


css的基本语法

格式:

选择符{

样式属性: 属性值;

样式属性: 属性值 属性值 …;

}


选择符{样式属性: 属性值;样式属性: 属性值 属性值 …;}

注意:


选择符主要是告诉浏览器,接下来花括号里面样式给哪一个标签或者哪一批标签添加外观的,在行内样式中,不需要加选择符

样式属性主要是告诉浏览器, 给指定的标签添加什么样的外观,样式属性在同一个花括号里面或者同一个标签中,是唯一的.如果出现重复的话,在浏览器产生覆盖效果.

属性值主要是告诉浏览器,给指定标签添加的指定外观是什么效果,一般如果没有指定样式,浏览器内部都会有对应的默认值,写上属性和属性值以后就会覆盖默认值.属性值也是唯一的.

多个属性值的情况下,必须使用英文的空格隔开.

css中所有的代码,都不需要缩进或者换行.

注释

css中也有注释,注释的目的是为了解释代码的用途或者作用.方便其他开发者更好的了解当前的代码.

/*

多行注释, 这里的内容就不会被显示或者不会被浏览器执行.

*/


单行注释

/* 字体颜色: 白色; */

2.css的基本使用

css在使用过程中,主要就是嵌套进网页中进行使用的.使用过程中,一般有三种引入方式:

(1)行内样式


主要在开始标签中, 通过style属性来编写样式.在工作中,行内样式是使用频率最少的.

一般都是将来通过来javascript来控制的样式才会使用行内样式.


(2)内部样式

主要通过在head的内部子标签style标签中编写css样式.

在开发中,内部样式主要都是编写在html网页内部,但是开发中一个web项目往往由多个html网页组成.


(3)外部样式

主要是在css文件中编写css样式, 然后在head的子标签link标签的href属性中指定css路径引入到网页中进行“导包”使用.

创建html网页,编写代码:


(3)css优先级 的 6大分类


通常可以将css的优先级由高到低分为6组:


第一优先级:无条件优先的属性只需要在属性后面使用**!important**。它会覆盖页面内任何位置定义的元素样式。ie6不支持该属性。

第二优先级:在html中给元素标签加style,即内联样式。该方法会造成css难以管理,所以不推荐使用。

第三优先级:由一个或多个id选择器来定义。例如,#id{margin:0;}会覆盖.classname{margin:3pxl}

第四优先级:由一个或多个类选择器、属性选择器、伪类选择器定义。如.classname{margin:3px}会覆盖div{margin:6px;}

第五优先级:由一个或多个类型选择器定义。如div{marigin:6px;}覆盖*{margin:10px;}

第六优先级:通配选择器,如 * {marigin:6px;}

(4)css优先级 的 优先顺序

Inline style(内联样式) > Internal style sheet(内部样式) > External style sheet(外部样式)

   优先级:
        继承 0
        标签div 1
        伪类选择器 10
        属性选择器 10
        类选择器 10

        id选择器 100
        内联样式优先级 1000
        !important 最牛逼 10000
        相同优先级的,后面的覆盖前面的,数值越大越优先


!important > 内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器 > 通配选择器 > 继承选择器


各项示例:

内联样式:写在标签属性style的样式,如



ID选择器,如#id{…}

类选择器,如 .class{…}

属性选择器,如 input[type=“email”]{…}

伪类选择器,如a:hover{…}

伪元素选择器,如 p::before{…}

标签选择器,如 input{…}

通配选择器,如 *{…}

案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>css学习 css的三种引入方法</title>

    <!-- 2.内嵌样式 -->
    <style>
        p
        {color:blue;}

    </style>
    <!-- 外部引入 -->
    <link href="my.css" type="text/css" rel="stylesheet" />
</head>
<body>
    <p>今天学习css</p>
    <!-- 1.行内样式 -->
    <p style="color:tan;">今天学习css</p>
    <p>我们很开心</p>
    <a href="">我是链接</a>
</body>
</html>


引入方式一:行内样式,优先级最高,当有其他样式与行内样式冲突时,以行内样式为准

直接在标签中通过style属性来编写样式


引入方式二:内嵌样式

主要通过head标签中的style字标签来编写样式

选择p标签,给所有的p标签都施加该样式


结果:内嵌样式不会改变行内样式结果,优先级没有行内样式高。其他未设置行内样式的p标签,被施加了该样式

引入方式三:外部样式

单独创建.css文件来编写样式,在head的子标签 link中通过href=''引入

(5)常用选择器

万能选择符*

在工作中, 星号基本不用, 如果有使用的话,基本就是用在页面的外观初始化时.

* { /* 代表网页中的所有元素 */
    color: blue;
}

标签选择符

也叫元素选择符,可以指定同一种名称的标签的外观效果,例如,p,h1,a,li在css中都是标签选择符

ID选择符

给指定的标签指定id值,把这个id值作为选择符,左边加上#,就可以在css中给这个标签[html元素]加上样式了.


class类选择符

通过标签的class属性值可以对页面中的标签进行分类, 然后在css样式中,使用.分类名作为选择符,可以给指定分类的所有标签增加样式外观


案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>常用选择器</title>

    <style>

        /* 标签选择器*/
        h1
        {color:cyan}
        /* 类选择器   点 类名  选择*/
        .one
        {color:green;}
        /* ID选择器   # id名  选择 */
        #two
        {color:red;}

        /* 组合选择器 */
        h1,h2,h3,h4
        {color:goldenrod;}

        /* 越具体指定,优先级就越高 */
        h1.one
        {color:gray;}        
        h2#two
        {color:greenyellow;}

    </style>

</head>
<body>
    <!-- 
    标签选择器 :  指定的是哪一些标签
    类选择器   :  指定的是哪一类标签
    ID选择器   :  指定的是哪一个标签 
    -->
    
    <h1>1号标签111</h1>
    <h1 class="one" >1号标签222</h1>
    <h2 id = "two">2号标签333</h2>
    <a href="" class="one">我是连接</a>
    <span id ="two">我是span</span>
    <h3>我是h3标签</h3>
</body>
</html>


优先级顺序

!important > 内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器 > 通配选择器

id选择器是特指一个,不要多个元素设置相同id。如果要对多个元素相同配置,那就用类选择器或其他


!important 加在颜色后面,分号前面

过滤越具体,优先级越高


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>选择器的优先级</title>
    <style>
        font
        {color:greenyellow;}
        .one
        {color:blue;}
        #two
        {color: indigo;}
        font
        {color:greenyellow !important;}    /*注意 !important 的位置*/

    </style>
</head>
<body>
    <!-- 
        !important <- 行内样式 <- ID选择器 <- 类选择器 <- 标签选择器 
        大原则: 泛指的元素优先级低, 特指的元素优先级高 , 越具体优先级就越高 
    -->
    <font style="color:tan;" class="one" id="two"> 选择器的优先级 </font>
    
</body>
</html>


关系选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> 关系选择器 </title>
    <style>
        /*  多行注释  */
        ul li   /* 包含选择器/后代选择器 */
        {color:darkslateblue;}
        ul>li   /* 父子选择器 */
        {color:yellow;}
        ol+li   /* 相邻选择器 特指下面一个*/
        {color:green;}
        ol~li   /* 兄弟选择器 特指下面一堆*/
        {color:deeppink;}
    </style>

</head>
<body>

    <ul>
        <li>动漫频道</li>
        <li>学习频道</li>
        <li>直播频道</li>
        <li>游戏频道</li>
        <ol>
            <li>少儿频道</li>
            <li>智慧树,大风车</li>
            <li>老年人频道</li>
        </ol>
        <li>授课直播</li>
        <li>亚洲捆绑</li>
    </ul>
    
</body>
</html>

包含选择器,包含ul下的所有元素

父子选择器,只包含ul下的li

相邻选择器,向下指定


兄弟选择器,ol下面一堆li

下面的ol不被选择

属性选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性选择器</title>
    <style>
        input[name]
        {background-color: dodgerblue;}
        input[name=username]
        {background-color: red;}
        input[type=password]
        {background-color:yellow;}
        input[type=text]
        {background-color:green;}
    </style>
</head>
<body>
    <form action="" method="" >
        用户名: <input type="text" name="username" />
        <br />
        密码: <input type="password" name="nickname">
        <br />
        性别:<input type="radio" name="sex" value="m"> 男
        <input type="radio" name="sex" value="w"> 女
        <br />

        <input type="submit" value="点我">

    </form>
    
</body>
</html>

选择input里面的具有name属性的

指定input里面具有name属性,并且name的值是username的

伪类选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>伪类选择器</title>
    <style>
        /* 鼠标悬停的时候触发 */
        a:hover
        {color:teal;}
        /* 列表中第一个元素 */
        ul li:first-child
        {color:yellow;}
        /* 列表中最后一个元素 */
        ul li:last-child
        {color:green;}
        /* 列表中具体某一个元素 */
        ul li:nth-child(4)
        {color: red;}
        /*  偶数个2n / even   奇数个2n-1 / odd n不可换 */
        ul li:nth-child(even)
        {color:turquoise;}
        ul li:nth-child(odd)
        {color:violet;}


        /* 小练习 */
        /* 1.写一个table表格,设置一个背景色 */
        table
        {background-color:green;}
        /* 2.偶数行颜色为蓝色 */
        table tr:nth-child(2n)
        {background-color: blue;}
        table tr td
        {}
        /* 3.第3 , 6 , 9   3倍行颜色为黄色 */
        table tr:nth-child(3n)
        {background-color:yellow;}
        /* 4.鼠标滑过时,颜色变成红色 */
        table tr:hover
        {background-color: red;}

    </style>
</head>
<body>
    
    <a href="#"> 老男孩教育 </a>
    <ul>
        <li>马春妮</li>
        <li>孙坚</li>
        <li>晓东</li>
        <li>文东</li>
        <li>王伟</li>
        <li>好心</li>
        <li>蜂拥</li>
        <li>倩倩</li>
        <li>石超</li>
        <li>帅帅</li>
    </ul>

    <!--
    小练习:
        1.写一个table表格,设置一个背景色
        2.偶数行颜色为蓝色
        3.第3 , 6 , 9   3被行颜色为黄色
        4.鼠标滑过时,颜色变成红色
    -->

    <!--
    颜色设置:
        RGB:  三原色
            R:red     0~255 0~ff
            G:green   0~255 0~ff
            B:blue    0~255 0~ff
            
            1.使用rgb方式表达颜色:
                rgb(100,100,100)      三原色的设置    
                rgba(100,100,100,0~1) 三原色+透明度设置     透明度值越接近于1 越不透明    越接近于0越透明

            2.使用十六进制的方式表达颜色
                f -> 15 1111  ff -> 255  1111 1111
                纯红色: # ff 00 00   => #f00 (简写)
                纯绿色: # 00 ff 00   => #0f0 (简写)
                纯蓝色: # 00 00 ff   => #00f (简写)
                
                两个值不相同时不能简写

    -->
    <table border=1 style="width:600px;" cellspacing=0 cellpadding=0 >
        <tr>
            <td style="background-color: #800000;">111</td><td style="background-color:#0f0;">222</td><td  style="background-color:#00f;">333</td><td>444</td>
        </tr>
        <tr>
            <td  style="background-color:rgb(100,100,100);">111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td style="background-color:rgba(100,100,100,0.7);">111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
        <tr>
            <td>111</td><td>222</td><td>333</td><td>444</td>
        </tr>
    </table>

</body>
</html>

伪类选择器,冒号的形式:hover

鼠标悬停上去后触发,移走后恢复:

可以是标签,tr td ul li 等 冒号 hover

伪类选择器种类:

ul的第一个元素

ul li:first-child

查找具体某一个li

ul li:nth-child(4)

找到偶数个li

ul li:nth-child(even)

奇数个li

ul li:nth-child(odd)

<!--
小练习:
    1.写一个table表格,设置一个背景色
    2.偶数行颜色为蓝色
    3.第3 , 6 , 9   3被行颜色为黄色
    4.鼠标滑过时,颜色变成红色
-->

设置表格中所有内容居中,可以将所有tr包含在tbody中,在tbody中设置

伪对象选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>伪对象选择器</title>
    <style>
        .name
        {color:goldenrod;}
        /* 在内容之前插入 */
        .name::before
        {
            content:"我问:";
            color:green;
        }

        /* 在内容之后插入 */
        .name::after
        {
            content:"肯定对!";
            color:magenta;
        }

        /* 鼠标选中后的样式 */
        .name::selection
        {
            background-color: mediumspringgreen;
            color: white;
        }



    </style>
</head>
<body>
    
    <span class="name">王文很帅,对不对?</span>

</body>
</html>

伪对象可以在原内容的基础上插入内容

在class为name的元素前面插入 我问: 颜色设为绿色

要用双冒号,单冒号是伪类选择器,双冒号是伪对象选择器

.name::before {}

在原有元素之后插入内容:

设置鼠标选中内容后的文字样式

设置选中后的背景颜色,文字颜色

相关文章
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
747 2
|
6月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
transition过渡属性 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成。 但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化, 让效果显得更加细腻。简单点说,就是通过鼠标经过、获得焦点,被点击或对元素任何改变中触发, 并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 在默认样式中声明元素的初始状态样式; 声明过渡元素最终状态样式,比如悬浮状态; 在默认样式中通过添加
346 1
|
6月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
333 0
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
445 0
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
盒模型 盒模型: 所谓盒模型,就是浏览器为页面中的每个HTML元素生成的矩形盒子。 这些盒子们都要按照可见板式模型在页面上排布。 可见的板式模型主要由三个属性控制:position 属性、display 属性和 float属性。 position属性控制页面上元素间的位置关系。 display属性控制元素是堆叠、并排或者不在页面上显示。 float属性提供控制的方法,以便于把元素组成成多栏布局。 盒模型讲解: 在默认的情况下,每个盒子的边框是不可见的,背景也是透明的。 所以我们 不能直接的看到页面中的盒
910 1
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
445 3
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
619 1
|
6月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
233 1
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1478 14
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
838 0
下一篇
开通oss服务