HTML+CSS+JS 学习笔记(二)———CSS

简介: HTML+CSS+JS 学习笔记(二)———CSS

 🌱博客主页:大寄一场.

🌱系列专栏:

目录

  概念

引入方式

1- 内部(内联)样式表

2- 行内样式(嵌入样式)

3- 外部样式

常用CSS选择器:

1- 元素(标签)名选择器:

2- 类别选择器:

3-ID选择器

4- 包含关系选择器

5- 子元素选择器

6- 属性选择器

7- 伪类选择器

CSS三大特性

层叠性

继承性

优先级

单位基础

尺寸

颜色

常用属性

内容 content

内边距 padding

外边距 margin

边框 border

display

元素分类:

CSS背景样式属性

background-color ( 背景颜色 )

background-image (背景图片)

background-repeat (控制背景平铺)

background-size (控制背景图片大小)

文本相关属性

text-indent ( 缩进文本 )

text-align ( 文本对齐方式 )

color ( 文本颜色 )

line-height (行高)

字体相关

font-family ( 字体系列 )

font-style ( 字体风格 )

font-weight ( 字体加粗 )

font-size ( 字体大小 )

概念

CSS是:层叠样式表,作用是将HTML组件,的内容和样式分开,由HTML标签定义显示内容,由CSS 定义显示样式。

css定义语法:

/*
CSS语法:
选择器 {
样式属性: 属性值;
[样式属性: 属性值;]
...
}
*/
p {
background-color: lightblue;
}

image.gif

引入方式

1- 内部(内联)样式表

内部(内联)样式表:在页面中使用<style>标签定义样式信息

作用域:本页面

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            p {
                 background-color: lightblue;
              }
        </style>
    </head>
    <body>
        <p> 段落文本1 </p>
        <p> 段落文本2 </p>
        <div> div 文本</div>
    </body>
</html>

image.gif

2- 行内样式(嵌入样式)

行内样式(嵌入样式):在标签中指定style属性,从而指定标签的样式

作用域:本标签

<p style="color:red;"> 段落文本1 </p>

image.gif

3- 外部样式

外部样式:在页面面引入外部定义的*.css文件

作用域:所有引入了css文件的页面

<head>
    <link rel="stylesheet" href="./css/main.css" />
</head>

image.gif

以上三种引入样式优先级:就近原则。

如果样式有冲突,谁的设置离标签越近,则生效越优先,没有样式则会叠加(层叠的意义)

常用CSS选择器:

CSS样式选择方式,决定了CSS属性样式为谁(标签组件)设定

1- 元素(标签)名选择器:

元素(标签)名选择器:使用标签名称作为选择

p, div {
        background-color: lightblue;
        }

image.gif

2- 类别选择器:

类别选择器: .类别 的格式进行选择

/*类别选择器,选择: 指定了标签的class属性 */
.even {
background-color: lightblue;
}
.odd{
background-color: lightgray;
}

image.gif

3-ID选择器

ID选择器:#ID值 的格式进行选择

/* id选择器,选择: 指定了标签的id属性 优先于别的选择器*/
#div4 {
background-color: red;
}

image.gif

4- 包含关系选择器

包含关系选择器: 根据元素的关系进行选择

/* 包含关系: 设定div 包含的 span标签的样式 */
div span{
color: red;
}

image.gif

5- 子元素选择器

子元素选择器:指定子元素的选择器

/* 直接子元素关系 */
div > span{
color: blue;
}

image.gif

6- 属性选择器

/* 属性选择器 */
/* 含有name属性的 */
[name] {
background-color: red;
}
/* 选择name属性='input2'的 */
[name='input2'] {
background-color: red;
}
/* 选择那么属性值包含3字符的 */
[name*='3'] {
background-color: red;
}

image.gif

7- 伪类选择器

伪类选择器:元素自带的状态类型

/* 当鼠标在input组件上悬停时样式 */
input:hover{
background-color: blue;
}
/* 当input组件得到焦点时样式 */
input:focus{
background-color: green;
}

image.gif

CSS三大特性

层叠性

    • 层叠性是指当一个标签被设置了多个重复的样式时,一个属性会覆盖另外一个属性。
    • 主要遵循的原则是就近原则,在不考虑优先级情况下,在多个样式中最终生效的样式是离标签最近的样式。
    • 注意只覆盖同样的不可重复的样式属性,不会覆盖不重复的属 性,不重复的属性会进行合并。

    继承性

      • 继承性是指当子标签没有设置样式时,会继承父标签的样式。
      • 比如一个子标签没有设置背景颜色,那么子标签会继承父标签的 背景颜色。
      • 可继承的属性:字体系列属性(字体系列、字体颜色、字体大 小、字体粗细、字体风等...)、文本系列属性(文本缩进、文本水平对齐、行高、字间隔、字符间距、文本颜色[a元素除外]等...)
      • 注意:子标签不会继承父标签的宽度、高度、边距属性

      优先级

      ! important 关键字 > 行内样式 (元素自身style设置属性) > id选择器 > 伪类选择器 > 类选择器 (class) >

      标签名选择器 > 通配符选择器 > 继承的样式 。(按照从左到右的顺序,优先级是从高到低)

      优先级高的规则会忽视层叠性,忽视就近原则去定义样式。比如定 义!important,即使行内样式离得 近,最终生效的还是! important  标注的属性。

      单位基础

      尺寸

      %百分比是元素相对于父元素在对应尺寸上的百分比值

      px:px (pixel,像素)是一个相对单位,相对的是设备像素(device pixel)。通过设备像素比可以获取1px 在设备上真实的使用的设备像素。

      颜色

      (颜色名) 颜色名称 (比如: red、blue、pink)

      rgb(red, green, blue) rgb颜色函数,此函数接受以下所述的三个参数:

      red:此参数用于定义红色的强度。它是介于0到255之间的整数值,或者是介于0%到100%之间的百分

      比值。

      green:此参数用于定义绿色的强度。它是介于0到255之间的整数值,或者是介于0%到100%之间的百

      分比值。

      blue:此参数用于定义蓝色的强度。它是介于0到255之间的整数值,或者是介于0%到100%之间的百分

      比值。

      rgba(red, green, bluealpha) rgba颜色函数是 rgb 颜色值的扩展,此函数接受以下所述的四个参数:

      RGBA 是代表Red(红色) Green(绿色) Blue(蓝色)和 Alpha(不透明度)三个单词的缩写。RGBA 颜 色值是 RGB 颜色值的扩展,带有一个 alpha 通道 - 它规定了对象的不透明度。

      red:此参数用于定义红色的强度。它是介于0到255之间的整数值。

      green:此参数用于定义绿色的强度。它是介于0到255之间的整数值。

      blue:此参数用于定义蓝色的强度。它是介于0到255之间的整数值。

      alpha此参数用于定义颜色的不透明度。它介于0到1之间(0为完全透明1为完全不透明)。

      十六进制值颜色 十六进制值其实就是将rgb函数中,red、green、blue 0到255的取值转化为00到FF。例

      #ff00ee。

      .box {
      color: #00aaee;
      }

      image.gif

      注意:若十六进颜色r、g、b的值全都两位相等则可以进行缩写:例 #ff00aa 可缩写为 #f0a;#ffffff

      可缩写为 #fff。

      常用属性

      盒子模型:每个元素都有的模型结构

      当对一个文档进行布局(layout)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS

      basic box model,将所有元素表示为一个个矩形的盒子(box)。CSS 决定这些盒子的大小、位置以及

      属性(例如颜色、背景、边框尺寸…)。

      每个盒子由四个部分:边距(margin),边框(border),填充(padding),和实际内容(content)

      我们可以通过浏览器的开发者工具观察页面的元素,会发现每个元素都是一个盒子

      image.gif编辑

      内容 content

      概念:由内容边界限制,容纳着元素的“真实”内容,例如文本、图像,或是一个视频播放器。它的尺寸为内

      容宽度(或称 content-box 宽度)和内容高度(或称 content-box 高度)。它通常含有一个背景颜色(默认

      颜色为透明)或背景图像。

      如果 box-sizing 为 content-box(默认),则内容区域的大小可明确地通过 width、min-width、

      max-width、height、min-height,和 max-height 控制。

      内边距 padding

      概念:由内边距边界限制,扩展自内容区域,负责延伸内容区域的背景,填充元素中内容与边框的间距。它

      的尺寸是 padding-box 宽度 和 padding-box 高度。

      内边距的粗细可以由 padding-top、padding-right、padding-bottom、padding-left,和简写属性

      padding 控制。

      div {
      padding: 5px;
      padding-top: 5px;
      padding-left: 5px;
      padding-right: 5px;
      padding-bottom: 5px;
      }

      image.gif

      外边距 margin

      由外边距边界限制,用空白区域扩展边框区域,以分开相邻的元素。它的尺寸为 margin-box 宽度 和

      margin-box 高度。

      外边距区域的大小由 margin-top、margin-right、margin-bottom、margin-left,和简写属性

      margin 控制。在发生外边距合并的情况下,由于盒之间共享外边距,外边距不容易弄清楚

      div {
      margin: 5px ;
      margin-top: 5px;
      margin-left: 5px;
      margin-right: 5px;
      margin-bottom: 5px;
      }

      image.gif

      边框 border

      概念:由外边距边界限制,内间距外部区域,是容纳边框的区域。

      边框的粗细由 border-width 和简写的 border 属性控制。如果 box-sizing 属性被设为 border-box,

      那么边框区域的大小可明确地通过 width、min-width, max-width、height、min-height,和 max

      height 属性控制。

      假如盒子上设有背景(background-color 或 background-image),背景颜色将会一直延伸至边框的

      外沿,背景图片在边框的内沿。此默认表现可通过 CSS 属性 background-clip 来改变。

      div {
      /* border: 5px solid black; */
      border-top: 5px solid black;
      border-bottom: 5px solid black;
      border-left: 5px solid black;
      border-right: 5px solid black;
      }

      image.gif

      display

      概念:display 属性可以设置元素的内部和外部显示类型。元素的外部显示类型将决定该元素在流式布局中的 表现(块级或内联元素);元素的内部显示类型可以控制其子元素的布局(例如:grid 或 flex)。

             1. 【块级元素】block 元素生成一个块元素作用域,在正常流中生成元素前后的换行符(独占一行)。可

      以设置 width、 height、 margin 和 padding 属性。

             2. 【行内元素】inline 该元素是个内联元素,这些元素不会在其前后生成换行符(不会独占一行)。在正常流中,如果有空间,下一个元素将位于同一行上。设置width,height属性无效。内联元素的margin属 性只在水平方向会生效而padding(除了padding-top)都会生效。

             3. 【行内块元素】inline-block 元素生成一个行内块元素。它将与周围的内容一起流动,元素不再独占一 行但元素具有block的属性,可设置width、 height、 margin 和 padding 属性。

      请注意,对于行内元素来说,尽管内容周围存在内边距与边框,但其占用空间(每一行文字的高度)

      则由 line-height 属性决定,即使边框和内边距仍会显示在内容周围。

      元素分类:

      1- 块级元素(block):自动占满一行,可以设定其大小

      例如:div、p、h1~h6、ul、ol、dl、li、dd、table、hr、table、header、section、footer

      2- 行内元素(inline):不会充满一行,宽度由内容多少决定,高度由字体大小决定,不能设定其大小;

      例如:span、img、a、lable、input、abbr(缩写)、em(强调)、big、cite(引用)、i(斜体)、q (短引用)、textarea、select、small、sub、sup,strong、u(下划线)、button(默认display:inline-block)

      3- 行内块级元素(inline-block): 不会占满一行,而且可以设定其大小;

      例如:img 、input 、td

      可以通过 display属性设置一个元素的分类;

      原则:块级元素可以包含行内元素,而行内元素不能包含块级元素;

      div {
      /* inline、blick、inline-block、none */
      display: inline-block;
      width: 200px;
      height: 200px;
      }

      image.gif

      CSS背景样式属性

      background-color ( 背景颜色 )

      属性定义了 CSS 中任何元素的背景颜色。属性接受任何有效的 <color> 值。背景色扩展到元素的内容和内边距的中

      div {
      background-color: red;
      }
      div {
      background-color: rgb(0, 160, 220);
      }
      div {
      background-color: rgba(0, 160, 220, 0.6);
      }
      div {
      background-color: #FFCC00;
      }
      div {
      background-color: #FC0;
      }

      image.gif

      background-image (背景图片)

      通过 background-image 属性允许在元素的背景中显示图像。

      默认情况下,大图不会缩小以适应元素,因此我们只能看到它的一部分,而小图则是平铺以填充方 框。

      背景颜色和背景图片可以同时设置,背景图片会在背景颜色上方

      .box {
      background-image: url(balloons.jpg);
      }

      image.gif

      background-repeat (控制背景平铺)

      使用 background-repeat 属性可以控制图像的平铺行为

      .box {
      background-image: url(balloons.jpg);
      background-repeat: no-repeat | repeat-x | repeat-y | repeat;
      }

      image.gif

        • no-repeat:不重复平铺图片。
        • repeat-x:水平重复平铺图片。
        • repeat-y:垂直重复平铺图片。
        • repeat (默认):在两个方向重复平铺图片。

        background-size (控制背景图片大小)

        通过 background-size属性,它可以设置长度或百分比值,来调整图像的大小以适应背景.

        .box {
        background-image: url(balloons.jpg);
        background-size: <width> <height> | cover | contain;
        }

        image.gif

          • <width> <height> 分别设置图片的宽度高度可以是长度或百分比值,如果只设置一个值该值将会设
          • 置图片宽度,高度按图片比例进行缩放。
          • cover: 保证宽高比的情况下放大图片占满盒子区域。在这种情况下,有些图像可能会跳出盒子外。
          • contain: 保证宽高比的情况下适应盒子区域。在这种情况下,有些可能在图像的任何一边或顶部和底部 出现间隙。

          文本相关属性

          介绍:在 CSS 中可以通过设置文本属性定义文本的外观。如:改变文本的颜色、字符间距,对齐文本,装饰

          文本,对文本进行缩进,等等。

          text-indent ( 缩进文本 )

          通过使用 text-indent 属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值。

          这个属性最常见的用途是将段落的首行缩进,下面的规则会使所有段落的首行缩进 5 em:

          p {
          text-indent: 5em;
          }

          image.gif

          注意:一般来说,可以为所有块级元素应用 text-indent,但无法将该属性应用于行内元素,图像之类的替换

          元素上也无法应用 text-indent 属性。不过,如果一个块级元素(比如段落)的首行中有一个图像,它会随

          该行的其余文本移动。

          提示:如果想把一个行内元素的第一行“缩进”,可以用左内边距或外边距创造这种效果。

          text-align ( 文本对齐方式 )

          该属性通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式。

          p {
          text-align: center;
          }

          image.gif

            • left(默认):把文本排列到左边。
            • right: 把文本排列到右边。
            • center: 把文本排列到中间。
            • justify: 实现两端对齐文本效果。(常用于打印输出)
            • inherit: 规定应该从父元素继承 text-align 属性的值。

            color ( 文本颜色 )

            这个属性设置了一个元素的前景色(在 HTML 表现中,就是元素文本的颜色)

            p {
            color: #fc0
            }

            image.gif

              • color_name: 规定颜色值为颜色名称的颜色(比如 red)。
              • hex_number: 规定颜色值为十六进制值的颜色(比如 #ff0000)。
              • rgb_number: 规定颜色值为 rgb 代码的颜色(比如 rgb(255,0,0))。
              • hsl_number: 规定颜色值为 rgb 代码的颜色(比如 hsl(180,100%,50%))。
              • inherit: 规定应该从父元素继承颜色。

              line-height (行高)

              该属性设置行间的距离(行高)。该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中

              基线之间的最小距离而不是最大距离。不允许使用负值。

              image.gif编辑

              .small {
              line-height:90%
              }

              image.gif

                • normal(默认):设置合理的行间距。
                • number:设置数字,此数字会与当前的字体尺寸相乘来设置行间距。
                • length:设置固定的行间距。
                • %:基于当前字体尺寸的百分比行间距。
                • inherit: 规定应该从父元素继承 line-height 属性的值。

                字体相关

                font-family ( 字体系列 )

                font-family 规定元素的字体系列。

                p {
                font-family:"Times New Roman",Georgia,Serif;
                }

                image.gif

                有两种类型的字体系列名称:

                指定的系列名称:具体字体的名称,比如:“times”、“courier”、“arial”。

                通常字体系列名称:比如:“serif”、“sans-serif”、“cursive”、“fantasy”、“monospace”

                字体优雅降级:

                使用某种特定的字体系列(Geneva)完全取决于用户机器上该字体系列是否可用;这个属性没有指示

                任何字体下载。因此,强烈推荐使用一个通用字体系列名作为后路。

                所有浏览器都有几种默认字体。这些通用字体包括monospace,serif和sans-serif。

                当字体不可用,你可以告诉浏览器通过 “降级” 去使用其他字体。

                例如,如果你想将一个元素的字体设置成Helvetica,当Helvetica不可用时,降级使用sans-serif字

                体,那么可以这样写:

                p {
                font-family: Helvetica, sans-serif;
                }
                image.gif

                通用字体名字不区分大小写。同时,也不需要使用引号,因为它们是 CSS 关键字。

                font-style ( 字体风格 )

                font-style 属性定义字体的风格,设置使用斜体、倾斜或正常字体。斜体字体通常定义为字体系列中的一个单独的字体

                p.normal {
                font-style:normal;
                }
                p.italic {
                font-style: italic;
                }
                p.oblique {
                font-style: oblique;
                }

                image.gif

                  • normal (默认):浏览器显示一个标准的字体样式。
                  • italic: 浏览器会显示一个斜体的字体样式。
                  • oblique: 浏览器会显示一个倾斜的字体样式。
                    • inherit: 规定应该从父元素继承字体样式。

                    注意:Italic是使用了文字本身的斜体字体,oblique是让没有斜体字体的文字做倾斜处理。所以有少量

                    的不常用字体没有斜体属性,如果我们使用Italic则会没有效果。

                    font-weight ( 字体加粗 )

                    font-weight 属性设置文本的粗细。该属性用于设置显示元素的文本中所用的字体加粗。

                    p.normal {
                    font-weight: normal;
                    }
                    p.thick {
                    font-weight: bold;
                    }
                    p.thicker {
                    font-weight: 900;
                    }

                    image.gif

                      • normal(默认值):定义标准的字符。
                      • bold: 定义粗体字符。
                      • bolder: 定义更粗的字符。
                      • lighter: 定义更细的字符。
                      • 100~900: 定义由粗到细的字符。400 等同于 normal,而 700 等同于 bold。(该属性值只有整百)
                      • inherit: 规定应该从父元素继承字体的粗细。

                      字体粗细属性是根据用户电脑上安装的字体相应匹配改变的。在很多情况下,由于系统作了最相近的

                      匹配,因此看不出不同的 font-weight 值有什么区别

                      font-size ( 字体大小 )

                      该属性设置元素的字体大小。注意,实际上它设置的是字体中字符框的高度;实际的字符字形可能比这些框

                      高或矮(通常会矮)。

                      h1 {
                      font-size: 250%;
                      }
                      h2 {
                      font-size: 2rem;
                      }
                      p {
                      font-size: 18px;
                      }

                      image.gif

                        • length:把 font-size 设置为一个固定的值。
                        • %: 把 font-size 设置为基于父元素的一个百分比值。


                        相关文章
                        |
                        5天前
                        |
                        JavaScript 前端开发
                        页面滚动触发css3动画js插件
                        delighters.js是一款页面滚动触发css3动画js插件。该js插件可以在页面向下滚动时,为进入浏览器视口的元素制作各种炫酷的CSS3动画效果。
                        30 13
                        |
                        13天前
                        纸屑飘落生日蛋糕场景js+css3动画特效
                        纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
                        32 3
                        |
                        13天前
                        |
                        Web App开发 移动开发 HTML5
                        html5 + Three.js 3D风雪封印在棱镜中的梅花鹿动效源码
                        html5 + Three.js 3D风雪封印在棱镜中的梅花鹿动效源码。画面中心是悬浮于空的梅花鹿,其四周由白色线段组成了一个6边形将中心的梅花鹿包裹其中。四周漂浮的白雪随着多边形的转动而同步旋转。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
                        47 2
                        |
                        24天前
                        |
                        前端开发 测试技术 定位技术
                        如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
                        本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
                        48 7
                        |
                        24天前
                        |
                        前端开发 JavaScript 搜索推荐
                        HTML与CSS在Web组件化中的核心作用及前端技术趋势
                        本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
                        32 6
                        |
                        24天前
                        |
                        存储 移动开发 前端开发
                        高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
                        本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
                        35 5
                        |
                        1月前
                        |
                        移动开发 JavaScript 前端开发
                        html table+css实现可编辑表格的示例代码
                        html table+css实现可编辑表格的示例代码
                        58 12
                        |
                        1月前
                        |
                        前端开发 JavaScript
                        用HTML CSS JS打造企业级官网 —— 源码直接可用
                        必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
                        126 1
                        |
                        1月前
                        |
                        前端开发 JavaScript 安全
                        HTML+CSS+JS密码灯登录表单
                        通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
                        46 3
                        下一篇
                        DataWorks