前端基础(一) HTML && CSS

一、HTML && CSS

HTML的简述

网页的基本概念

  • 网站是指在因特网上根据一定的规则,使用 HTML 等制作的用于展示特定内容相关的网页集合。 网页是网站中的 一“页”,通常是 HTML 格式的文件,它要通过浏览器来阅读

  • 网页是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。 通常我们看到的网页, 常见 以 .htm 或 .html 后缀结尾的文件,因此将其俗称为 HTML 文件

HTML的基本概念

  • HTML 指的是超文本标记语言 (Hyper Text Markup Language) ,它是用来描述网页的一种语言。
  • 标记语言是一套标记标签 (markup tag)
  • 所谓超文本,有 2 层含义:
    • 它可以加入图片、声音、动画、多媒体等内容(超越了文本限制 )
    • 它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接(超级链接文本 )

HTML入门代码

<html>
    <head>
        <title>这是标题</title>
    </head>
    <body>
        <!-- 文章注释 -->
        拉勾欢迎你
    </body>
</html>

在这里插入图片描述

HTML语法特点

  • HTML文件不需要编译,直接使用浏览器阅读即可

  • HTML文件的扩展名是*.html 或 *.htm

  • HTML结构都是由标签组成

    • 标签名预先定义好的(内置的),我们只需要了解其功能即可
    • 标签名不区分大小写 <A name=“属性值” age=“18” >标签体</a>
    • 通常情况下标签由开始标签和结束标签组成。例如: <a 属性名=“属性值” href=“01_html”>标签体</a>
    • 特殊性:单标签,如果没有结束标签,建议以/结尾。例如:<img />
    • HTML 标签中还有属性 <a name=“属性值” age=“18” >标签体</a>
  • HTML结构包括两部分:头head和体body

  • 注释:

    注释特点:

    • 浏览器查看时,不显示。右键查看源码可以看到。
    • 注释标签不能嵌套。
    • 注释特殊用法,为不同的浏览器提供不同的解决方案 (了解)

基本标签

标题标签

  • HTML提供<hn> 系列标签,用于修饰标题,包含: <h1>、<h2>、<h3>、<h4>、<h5>、<h6> 。 <h1> 定义大的标题;<h6> 定义小的标题

  • 特点:

    • 加了标题的文字会变的加粗,字号也会依次变大
    • 一个标题独占一行
  • 示例

    <h1>拉勾有勾</h1>    
    <h2>招聘助手</h2>    
    <h3>在线教育</h3>    
    <h4>大厂平台</h4>   
    <h5>一起学习</h5>  
    <h6>必定高新</h6>
    

段落标签<p>

  • p 标签会自动在其前后创建一些空白

  • 标签语义:可以把 HTML 文档分割为若干段落

  • 单词 paragraph [ˈpærəgræf] 的缩写,意为段落

  • 特点:

    • 文本在一个段落中会根据浏览器窗口的大小自动换行
    • 段落和段落之间保有空隙
  • 示例

    <p>
        这是第一段
    </p>
    <p>
        这是第二段
    </p>
    

换行标签<br/>

  • 在 HTML 中,一个段落中的文字会从左到右依次排列,直到浏览器窗口的右端,然后才自动换行。如果希望 某段文 本强制换行显示,就需要使用换行标签

  • 单词 break 的缩写,意为打断、 换行。

  • 标签语义:强制换行

  • 特点:

    • 是个单标签
    • 标签只是简单地开始新的一行,跟段落不一样,段落之间会插入一些垂直的间距
  • 示例

    第一行<br/> 第二行
    

字体标签<font>

  • <font> 规定文本的字体、字体尺寸、字体颜色

  • font字体标签的属性

    属性描述
    colorrgb(x ,x ,x) 、#xxxxxx、 colorname属性color,设置字体的颜色
    color = “red”
    color = "#FF0000”
    stytle = "color:rgb(0,255,255)”
    不赞成使用。请使用样式取代它。规定文本的颜色
    sizenumber属性size,设置字体的大小,范围为1-7px
    不赞成使用。请使用样式取代它。规定文本的大小
  • 示例

    <font size="7" color="green">我的字体</font> 
    <font size="7" color="#00F">我的字体</font> 
    <font style="color: rgb(0,255,0);">我的字体3</font>
    

文本格式化标签

  • 为文字设置粗体、 斜体或下划线等效果,这时就需要用到 HTML 中的文本格式化标签,使文字以特殊的方式显示

    语义标签说明
    加粗<strong></strong>或<b></b>推荐使用<strong> 标签加粗,语义更强
    倾斜<em></em>或<i></i>推荐使用<em> 标签加粗,语义更强
    删除线<del></del>或<s></s>推荐使用<del> 标签加粗,语义更强
    下划线<ins></ins>或<u></u>推荐使用<ins> 标签加粗,语义更强
  • 文本格式化标签之间可以嵌套,<strong>要在最外层

图片标签

  • 在 HTML 标签中, <img>标签用于定义 HTML 页面中的图像

    <img src="图片url路径"/>
    
  • 常用属性

    属性属性值说明
    srcURL路径(必有属性)指定需要显示图片的URL(路径)
    alt文本图片无法显示时的替代文本
    title文本提示文本。鼠标放到图像提示文字
    width像素设置图像的宽度,单位像素px,也可以是百分比
    height像素定义图像的高度,单位像素px,也可以是百分比
    border像素定义图像的高度,单位像素px,也可以是百分比
  • 示例

    <img src="img/2.jpg"  width="200px" />
     
    <img width="20%" src="https://goss2.cfp.cn/creative/vcg/800/new/VCG211247494472.jpg" alt="这群程 序员" />
    
  • 图像标签属性注意

    • 图像标签可以拥有多个属性,必须写在标签名的后面。
    • 属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开。
    • 属性采取键值对的格式,即 key=“value" 的格式,属性 =“属性值”
    • 长宽高属性的属性值像素和百分比的区别:像素不会随网页变化,百分比使图片随网页变化

列表标签

  • 分为有序和无序列表

  • 常用标签

    标签属性取值描述
    oltypeA、a 、I 、i 、1有序列表(默认数字排序)
    ultypedisc 实心圆、square 方块 、circle 空心圆无序列表(默认实心圆)
    litype(A、a 、I 、i 、1 )(disc 实心圆、square 方块 、circle 空心圆)列表项
  • 示例

    
    <!--列表标签--> 
    <ul type="circle">  <!--以“空心圆”显示无序列表-->    
        <li>无序</li>    
        <li>无序</li>    
        <li>无序</li> 
    </ul> 
    <ol type="I">       
        <!--以大写阿拉伯数字显示序号-->    
        <li>有序</li>    
        <li>有序</li>    
        <li>有序</li> 
    </ol>
    

超链接标签

  • 在 HTML 标签中, 标签用于定义超链接,作用是从一个页面链接到另一个页面

  • 超链接标签语法

    <a href="跳转目标" target="目标窗口的弹出方式"> 文本或图像 </a>
    
  • 超链接属性

    属性名描述
    href用于确定需要显示页面的路径(URL)
    target打开页面的方式:
    取值1: _blank 在新窗口中打开href 确定的页面。
    取值 2 : _self 默认。使用href确定的页面替换当前页
  • 超链接分类

    分类举例
    外部链接例如 < a href="http://www.lagou.com ">拉勾
    内部链接网站内部页面之间的相互链接.例如 < a href=“index.html”> 首页
    空链接如果当时没有确定链接目标时,< a href="#"> 首页
    下载链接如果 href 里面地址是一个文件或者压缩包,会下载这个文件
    网页元素链接在网页中的各种网页元素,如文本、图像、表格、音频、视频等都可以添加超链接
    锚点链接点击链接,可以快速定位到页面中的某个位
  • 示例

    <!-- 采用超链接标签跳转到外网地址 -->
    <a href="https://www.baidu.com">百度链接</a>
    <!-- 采用超链接标签跳转到项目位置 -->
    <a href="demo.html"> 本文档 </a>
    
    <!-- 跳转方式 target属性 -->
    <a href="https://www.baidu.com" target="_blank">百度链接</a>
    
    <!-- 采用图片方式跳转 -->
    <a href="https://www.baidu.com"><img src="img/3.png"></a>
    

表格标签

  • 表格标签作用

    • 表格主要用于显示、 展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据 的时 候,能够熟练运用表格就显得很重要。
    • HTML表格由 <table> 标签以及一个或多个 <tr>(行标签)、<th>(第一行表头) 或 <td> (单元格)标签组成。
    • <th> 中的内容会加粗居中,<td>默认是居左不加粗
  • 表格的基本语法

    <table>    
        <tr>        
            <td>单元格内的文字</td>        
            ...    
        </tr>    
        ... 
    </table
        
    
    1. <table> </table> 是用于定义表格的标签。 
    2. <tr> </tr> 标签用于定义表格中的行,必须嵌套在 <table> </table> 标签中。 
    3. <td> </td> 用于定义表格中的单元格,必须 嵌套在 <tr></tr> 标签中。 
    4. 字母 td 指表格数据(table data),即数据单元格的内
    -->
    
  • 标签属性介绍

    标签属性描述
    <table>border 设置边框(像素)
    width 宽度(像素/百分比)
    height 高度(像素/百分比)
    align 位置设定 (left center right)
    cellspacing = "0px” 边框双线变单线
    bgcolor 背景色
    background 背景图
    父标签,相当于整个表格的容器
    <tr>align 内容位置(left center right)
    bgcolor 设置背景色
    属于<table>子标签代表行
    <td>colspan 单元格可横跨的列数
    rowspan 单元格可竖跨的行数
    align 单元格水平对齐方式 (left center right)
    属于<tr>子标签用于定义一个单元格
    <th>colspan 单元格可横跨的列数
    rowspan 单元格可竖跨的行数
    align 单元格水平对齐方式 (left center right)
    属于<tr>子标签用于定义表头
  • 示例

    <!DOCTYPE html>
    <html>    
        <head>        
            <meta charset="UTF-8">        
            <title></title>    
        </head>    
        <body>        
            <table border="1px" width="50%" height="400px" align="center" cellspacing="0px" bgcolor="skyblue" >            
                <tr bgcolor="coral">                
                    <th>姓名</th>                
                    <th>年龄</th>                
                    <th>地址</th>            
                </tr>            
                <tr align="center">                
                    <td>乔峰</td>                
                    <td>30</td>
                    <td>丐帮</td>            
                </tr>            
                <tr align="center">                
                    <td align="right" >段誉</td>                
                    <td>25</td>                
                    <td>大理</td>            
                </tr>       
            </table>   
        </body> 
    </html>
    
  • 注: <tr>中设置的背景色优先级高于<table>

  • 合并单元格

    把多个单元格合并为一个单元格, 合并单元格方式:

    • 跨行合并:rowspan=“合并单元格的个数”
    • 跨列合并:colspan=“合并单元格的个数”
  • 合并单元格三步曲:

    • 先确定是跨行还是跨列合并
    • 找到目标单元格. 写上合并方式 = 合并的单元格数量。比如:<td colspan=“2” ></td>
    • 删除多余的单元
    <!DOCTYPE html> 
    <html>    
        <head>        
            <meta charset="UTF-8">        
            <title></title>    
        </head>    
        <body>        
            <table border="1px" align="center" width="30%" height="300px" cellspacing="0px">            
                <tr>                
                    <td rowspan="2">1</td>                 
                    <td>2</td>                
                    <td>3</td>            
                </tr>            
                <tr>                
                    <!--<td>4</td>-->                
                    <td>5</td>                
                    <td>6</td>            
                </tr>            
                <tr>                
                    <td>7</td>                
                    <td colspan="2">8</td>                
                    <!--<td>9</td>-->            
                </tr>        
            </table>    
        </body> 
    </html
    

表单相关标签

表单的基本概念和作用

  • 在我们网页中, 我们也需要跟用户进行交互,收集用户资料,此时就需要表单
  • 使用表单目的是为了收集用户信息

表单的组成

  • 一个完整的表单通常由表单域表单控件(也称为表单元素)和 提示信息3个部分构成

    在这里插入图片描述

表单的标签

表单域
  • 表单域是一个包含表单元素的区域

  • 在 HTML 标签中 <form>标签用于定义表单域,以实现用户信息的收集和传递

  • <form>会把它范围内的表单元素信息提交给服务器

  • 格式

    <form action="url地址" method="提交方式" name="表单域名称">
        各种表单元素控件
    </form>
    
常用属性
  • 常用属性

    属性属性值作用
    actionurl地址用于指定接收并处理表单数据的服务器程序的URL地址
    methodget/post用于设置表单数据的提交方式,其取值为get或post
    name名称用于指定表单的名称,以区分同一个页面中的多个表单域
  • <form>表单标签,在html页面创建一个表单,表单标签在浏览器上没有任何显示。如果数据需要提交到服务器,负责搜集数据的标签必须存放在表单标签体内容。

  • action属性:请求路径,确定表单提交到服务器的地址(路径)

  • method属性:请求方式。常用的取值:GET、POST

输入域标签 <input>

  • <input type=""> 标签用于获得用户输入信息,type属性值不同,搜集方式不同,是常用的标签。

  • type属性值

  • text:普通文本

  • password:密码输入框,里边的密码以黑色的小圆点显示

  • radio:单选框

  • checkbox:多选框

  • file:上传文件

  • image:上传图片使用

  • hidden:隐藏域,存储数据使用,不会在浏览器页面显示

  • botton:普通按钮,配合js使用

  • reset:重置按钮,把表单的恢复到默认状态(清空表单)

  • submit:提交按钮,把表单的数据,提交到服务器

<form action="#" method="get"> 
    用户名:<input type="text" /><br />    
    密码:<input type="password"/><br />    
    请选择您的性别:<br /><input type="radio" name="sex" checked="checked"/><input type="radio" name="sex"/>   
    <br />    
    请选择您的爱好:<br />        
        篮球<input type="checkbox"/>        
        足球<input type="checkbox"/>        
        羽毛球<input type="checkbox"/>        
        乒乓球<input type="checkbox"/>    
    <br />    
    <input type="file"/><br />    
    <input type="image" src="img/2.jpg" height="100px" width="70px"/><br />    
    <input type="hidden" /><br />    
    <input type="button" value="点我试试"/><br />    
    <input type="reset" /><br />    
    <input type="submit" /><br />
</form>
  • 表单控件的属性

    • name:元素名,如果需要表单数据提交到服务器,必须提供name属性值,服务器通过属性值获得提交的数据
    • value属性:设置input标签的默认值
    • submit和reset为按钮显示数据
    • checked属性:单选框或复选框被选中
    • readonly:是否只读
    • disabled:是否可用
    <form action="#" method="post">    
        用户名:<input type="text" name="username" value="请输入用户名" readonly="readonly"/>    
        密码:<input type="password" name="password" value="请输入密码" disabled="disabled"/>    
        <br />    
        用户名:<input type="text" name="username" placeholder="请输入用户名"/>    
        密码:<input type="password" name="password" placeholder="请输入密码"/><br /> 
        <br /> 
    </form>
    
  • 注意事项

    input type = "text” 必要属性name

    input type = "password” 必要属性name

    input type = "radio” 必要属性name,要注意多个radio的name属性值要一样

    input type = "image” 必要属性name , src 引入图片地址

    input type="checkbox” 必要属性name,复选框的name都是一致的, value具体传递到后台的值

    input type="submit” value提交按钮的名称

下拉列表标签<select>

  • <select> 下拉列表。可以进行单选或多选。需要使用子标签指定列表项

    • name属性:发送给服务器的名称
    • multiple属性:不写默认单选,取值为“multiple”表示多选。
    • size属性:多选时,可见选项的数目。
    • <option> 子标签:下拉列表中的一个选项(一个条目)
      • selected :勾选当前列表项
      • value :发送给服务器的选项值
    <!--        
        select标签:是form子标签        
        下拉选项标签        
        子标签:option,下拉选的列表项,一个select标签中包含了多个option标签    
    -->    
    <select>        
        <option>北京市</option>        
        <option>南京市</option>        
        <option>天津市</option>    
    </select>
    
    <select name="city" multiple="multiple" size="2">        
        <option>北京市</option>        
        <option>南京市</option>        
        <option>天津市</option>    
    </select>
     
    <select name="city">        
        <option>北京市</option>        
        <option selected="selected">南京市</option>        
        <option value="tj">天津市</option>    
    </select>
    

文本域标签 <textarea>

  • 使用场景: 当用户输入内容较多的情况下,我们就不能使用文本框表单了,此时我们可以使用标签<textarea>
  • </p><p>使用 多行文本输入控

用例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单</title>
</head>
<body>
    <form action="#" method="post">
        用户名 <input type="text" name="userName" disabled="true"/> <br/>
        密码   <input type="password" name="password" readonly="readonly"/> <br/>
        性别   <input type="radio" name="sex" value="male" checked/><input type="radio" name="sex" value="female"/><br/>
        地址
        <select name="city" multiple="multiple">
            <option>请选择</option>
            <option>北京</option>
            <option>上海</option>
            <option>深圳</option>
        </select> <br/>
        头像 <input type="file" name="photo"/> <br/>
        兴趣 <input type="checkbox" name="hobby" value="1"> 看书
             <input type="checkbox" name="hobby" value="2"> 编程
             <input type="checkbox" name="hobby" value="3"> 游戏 <br/>
        简介 <textarea cols="20" rows="10"></textarea> <br/>
        图片 <input type="image" src=""/> <br/>
        隐藏域 <input type="hidden" name="myHidden" value="123456"/>  <br/>

        <input type="submit" value="提交数据"/>
        <input type="reset" value="重置数据"/>
        <input type="button" value="普通按钮"/>
    </form>
</body>
</html>

div

基本概念

  • div就是html一个普通标签,进行区域划分

  • 特性:独自占一行;独自不能实现复杂效果,必须结合CSS样式进行渲染。

  • 块标签,可以将网页划分为多个块进行布局

  • 块标签分类:

    • 行级元素:div — 用于页面布局
    • 行内元素:span — 用于页面布局或者消息提示框
    <!--    div标签:块标签,行级元素,会霸占html的一行 多个div元素则有多行--> 
    <div>div中的数据</div>div之外的数据 <br /> 
    <!--    span标签:块标签 ,行内元素,不会占用一行, 多个元素也在一行展示 --> 
    <span>span中的数据</span>span外的数据
    

CSS

基本概念

  • CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称.有时我们也会称之为 CSS 样式表或级联样式表

  • CSS 是也是一 种标记语言,CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样 式、边距等)以及版面的布局和外观显示样式

  • CSS 让我们的网页更加丰富多彩,布局更加灵活自如

  • 简单理解: CSS 可以美化 HTML , 让 HTML 更漂亮, 让页面布局更简单

    CSS (Cascading Style Sheets) :指层叠样式表

    样式:给HTML标签添加需要显示的效果。

    层叠:使用不同的添加方式,给同一个HTML标签添加样式,最后所有的样式都叠加到一起,共同作用 于该标

CSS样式规则

  • 使用HTML时,需要遵从一定的规范,CSS亦如此,要想熟练的使用CSS对网页进行修饰,首先需要了解CSS样式规则

  • 具体格式如下

    在这里插入图片描述

    CSS 写在head标签中,设置一个<style>标签
    选择器是用于指定 CSS 样式的 HTML 标签,花括号内是对该对象设置的具体样式,选择器区分大小写  
    属性和属性值以“键值对”的形式出现  
    属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等  
    属性和属性值之间用英文“:”分开  
    多个“键值对”之间用英文“;”进行区
    
    <style>    
        h2 {        
            color:red;        
            font-size:100px;    
        } 
    </style>
    
注意事项
  • CSS样式“选择器”严格区分大小写,“属性”和“属性值”不区分大小写。

  • 多个属性之间必须用英文状态下的分号隔开,最后一个属性后的分号可以省略,但是,为了便于增加新样式 最好保留。

  • 如果属性的值由多个单词组成且中间包含空格,则必须为这个属性值加上英文状态下的引号。例如

    <style>
        p { font-family:"Times New Roman";}
    </style>
    
  • 在编写CSS代码时,为了提高代码的可读性,通常会加上CSS注释,例如

    /* 这是CSS注释文本,此文本不会显示在浏览器窗口中  */
    
  • 属性的值和单位之间是不允许出现空格的,否则浏览器解析时会出错。例如,下面这行代码就是不正确的

    h1{ font-size:20 px; }                /* 20和单位px之间有空格 */
    

引入css样式

  • CSS使用非常灵活,既可以嵌入在HTML文档中,也可以是一个单独的文件,如果是单独的文件,则必须以.css为扩展名

  • CSS和HTML的结合3种常用方式:

    • 行内样式

      行内样式,是通过标签的style属性来设置元素的样式

      <!--方式1:行内样式    color : 表示字体颜色    font-size : 表示字体大小 --> 
      <a style="color: #f00; font-size: 30px;">拉勾教育</a>
      
    • 内部样式
      内部样式又称为内嵌式,是将CSS代码集中写在HTML文档的head头部标签体中,并且使用style标签定义

      <!--方式2:内部样式    background-color : 表示背景色 -->
      <head>
          <style type="text/css">    
          	body{        
              	background-color: #ddd;    
          	} 
      	</style>
      </head>
      

      内嵌式CSS样式只对其所在的HTML页面有效,可以对多处标签统一设置样式,因此,仅设计一个页面时,使用内嵌 式是个不错的选择。但如果是一个网站,不建议使用这种方式,因为他不能充分发挥CSS代码的重用优势

    • 外部样式
      外部样式又称为链入式,是将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中,在head标签中通过link标签将样式连接到HTML文档中

      <!--方式3:外部样式    
      rel="stylesheet"  固定值,当前文件和引入文件的关系,rel是relationship的缩写,                       stylesheet是样式表    
      type="text/css"   固定值,表示浏览器解析方式    
      href  表示css文件位置    
      font-family   表示使用的字体系列,多个字体使用逗号分隔。例如:“字体1,字体2,字体3”,               此时优先使用“字体1”,如果“字体1”系统不存在,再使用“字体2”,以此类推 
      --> 
      <head>
          <link rel="stylesheet" type="text/css" href="css/demo00.css"/>
      </head>
      

      链入式最大的好处是同一个CSS样式表可以被不同的HTML页面链接使用,同时一个HTML页面也可以通过多个link标 记链接多个CSS样式表

  • 三种样式的优先级

    行内样式>内部样式|外部样式(谁写在后边,使用谁,后边的会覆盖前边的)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>引入css的三种方式</title>
        <style>
            #div2 {
                width: 200px;
                height: 200px;
                background-color: blue;
            }
        </style>
    
        <!-- 引入mystyle.css文件到当前html
        link 引入css的标签
        rel  关系,stylesheet 样式表
        type 文件类型文本类型的css文件
        href 编写地址,引入具体的css文件
        -->
        <link rel="stylesheet" type="text/css" href="css/mystyle.css">
    </head>
    <body>
        <!-- 
            需求:
            创建三个div标签, 
            第一种引入css方式,第一个div 宽度和高度设为200px ,背景色设置为红色;
            第二种内部样式,修饰第二个div, 宽度和高度设为200px ,背景色设置为蓝色;
            第二种内外样式,修饰第三个div, 宽度和高度设为200px ,背景色设置为黄色;
    
            方式1: 行内式
            格式:
            <div style="属性名1:属性值1; 属性名2:属性值2....">
    
            方式2:内部式
            head标签中编写一个style标签,style标签中编写css样式
            <head>
                <style>
                    选择器 {
                        属性名1:属性值1;
                        属性名2:属性值2;
                        ....
                    }
                </style>
    
            </head>   
            
            方式3:外部式
            1)创建一个后缀为.css文件
            2)编写css文件
                选择器 {
                        属性名1:属性值1;
                        属性名2:属性值2;
                        ....
                    }
            3)html中head标签中 link标签引入css文件        
         -->
    
         <div style="width: 200px; height: 200px; background-color: red;">我的第一个div</div>
         <div id="div2">我的第二个div</div>
         <div id="div3">我的第三个div</div>
    </body>
    </html>
    

选择器

  • 要想将CSS样式应用于特定的HTML元素,首先需要找到该目标元素;在CSS中,执行这一任务的样式规则部分被称为选择器
元素选择器
  • 标记(标签)选择器是指用HTML标记名称作为选择器,按标记名称分类,为页面中某一类标记指定统一的CSS样式

  • 基本语法格式

    标记名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
    
ID选择器
  • id选择器使用“#”进行标识,后面紧跟id名,其基本语法格式如下

    #id名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
    
类选择器
  • 类选择器使用“.”(英文点号)进行标识,后面紧跟类名,其基本语法格式如下

    .类名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }
    
派生选择器
  • 派生选择器允许你根据文档的上下文关系来确定某个标签的样式。通过合理地使用派生选择 器,我们可以使 HTML 代码变得更加整洁。 比方说,你希望列表中的li标签下 strong 元素变为斜体字,而不是通常的粗体字,可以这样定义一个派生选择器
注意事项
  • 优先级问题:
    id选择器 > 类选择器 > 元素选择器
举例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>介绍css的四类选择器</title>

    <style>
        /* 1.使用标签选择器(元素选择器) ,选择所有的div标签,设置宽度和高度都为100px ; 设置背景色为黄色 */
        div {
            width: 100px;
            height: 100px;
            background-color: yellow;
        }

        /* 2.使用id选择器 , 选择id为div1的元素,设置宽度和高度200px , 背景色设置为红色 */
        #div1 {
            width: 200px;
            height: 200px;
            background-color: red;
        }

        /* 3.使用类选器,选择所有 class属性 mystyle的元素,设置宽度和高度为300px; 背景色设置为蓝色 */
        .mystyle {
            width: 300px;
            height: 300px;
            background-color: blue;
        }

        /* 4.使用派生选择器,选择div下的p标签,设置边框,设置背景色为 粉色. */
        div p {
            border: 1px solid black;
            background-color: pink;
        }

        /* 验证id选择器和类选择器的优先级 */
        #div3 {
            width: 100px;
            height: 100px;
            background-color: gold;
        }
    </style>
</head>
<body>
    <!-- 
        需求:
        1.使用标签选择器(元素选择器) ,选择所有的div标签,设置宽度和高度都为100px ; 设置背景色为黄色

        2.使用id选择器 , 选择id为div1的元素,设置宽度和高度200px , 背景色设置为红色

        3.使用类选器,选择所有 class属性 mystyle的元素,设置宽度和高度为300px; 背景色设置为蓝色

        4.使用派生选择器,选择div下的p标签,设置边框,设置背景色为 粉色.

        注意事项:
        优先级问题:
        id选择器  >   类选择器  > 元素选择器
     -->

     <div id="div1">111</div>
     <hr/>
     <div>222</div>
     <hr/>
     <div class="mystyle" id="div3">333</div>
     <hr/>
     <div  class="mystyle">444</div>
     <hr/>
     <div  class="mystyle">555</div>
     <hr/>
     <div>666
         <p>div666中的p元素</p>
     </div>
     <p>最下main的p元素</p>
</body>
</html>

css 样式

边框
  • 边框就是给html中的元素设置边线

  • CSS边框属性允许你指定一个元素边框的样式和颜色

  • 属性

    • border-style 设置线条的样式 (dotted 点状线; dashed 虚线;solid 单实线;double 双实线
    • border-width 设置线条的粗细 (10px; 20px)
    • border-color 设置线条的颜色
    • 简写版: border 1px solid red; (推荐)
  • 基本语法

    p {
    	border-style:dotted;
        border-width:1px;
        border-color:red;
    }
    /*或*/
    p{
        border 1px solid red;
    }
    
  • 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>CSS样式边框</title>
        <style>
            /* 1)第一个p标签设置线条为 点状线条 , 宽度1px ,颜色为红色; */
            #p1 {
                border-style: dotted;
                border-width: 1px;
                border-color: red;
            }
    
            /* 2)第二个p标签设置线条为 虚线 , 宽度2px ,颜色为蓝色; */
            #p2 {
                border-style: dashed;
                border-width: 2px;
                border-color: blue;
            }
    
            /* 3)第三个p标签设置线条为 单实线, 宽度3px ,颜色为黄色; */
    
            #p3 {
                border-style: solid;
                border-width: 3px;
                border-color: yellow;
            }
    
            /* 4)第四个p标签设置线条为 双实线 , 宽度4px ,颜色为粉色; */
            #p4 {
                border-style: double;
                border-width: 4px;
                border-color: pink;
            }
    
            /* 5) 采用简化写法设置边框 1px 单实线 金色 */
            #p5 {
                border : 1px solid gold;
            }
        </style>
    </head>
    <body>
         <p id="p1">我的第一个p标签</p>
         <p id="p2">我的第二个p标签</p>
         <p id="p3">我的第三个p标签</p>
         <p id="p4">我的第四个p标签</p>
         <p id="p5">我的第五个p标签</p>
    </body>
    </html>
    
尺寸
  • CSS 尺寸属性允许你控制元素的高度和宽度。同样,还允许你增加行间距

  • 属性

    • width 设置宽度 (100px; 20%)
    • height 设置高度 (100px)
  • 基本语法

    p {
        width: 100px;
        height: 100px;
    }
    
  • 举例

    <style type="text/css">    
        div{        
            border:1px solid #000;  /*1像素,实边,黑色*/        
            width:200px;        
            height:200px;    
        }
    </style>
    
转换 display
  • HTML提供丰富的标签,这些标签被定义成了不同的类型,一般分为:行级元素和行内标签。

  • 行级元素:

    • 以区域块方式出现。每个块标签独自占据一整行或多整行。
    • 常见的块元素: <h1>、<div> 等
  • 行内元素:

    • 不必在新的一行开始,同时也不强迫其他元素在新的一行显示。
    • 常见的行内元素: <span>、<a> 等
  • 在开发中,希望行内元素具有块元素的特性或者行内元素具有块元素的特性,可以使用display进行转换

  • 基本语法

    选择器 {display 属性值}
    
  • 常用属性值

    • inline:此元素将显示为行内元素(行内元素默认的display属性值)
    • block:此元素将显为块元素(块元素默认的display属性值)
    • none:此元素将被隐藏,不显示,也不占用页面空间
  • 转换方式

    • 将我们的行级元素转换为行内元素. div==>span
      取值: inline
    • 将我们的行内元素转换成行级元素 span===>div
      取值: block
    • 将指定的元素消失
      取值: none
    • 补充
      visibility : hidden 效果是隐藏元素.位置不消失
  • 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>display转换</title>
        <style>
            div {
                border : 1px solid black;
            }
    
            span {
                border : 1px solid red;
            }
        </style>
    </head>
    <body>
        <!-- 
            需求:
            1) 第一个div转成行内元素
            2) 第一个span标签转成行级元素
            3) 第二个div消失掉 (原来的位置也一起消失)
            4) 第三个div 隐藏 (原来的位置不消失)
         -->
    
         <div style="display: inline;">这是我的第一个div元素</div>
         <span style="display: block;">这是我的span标签</span>
         <div style="display: none;">这是我的第二个div元素</div>
         <div style="visibility:hidden">这是我的第三个div元素</div>
         <div>这是我的第四个div元素</div>
    </body>
    </html>
    
字体
  • 常用属性

    • color:颜色,字体颜色
    • font-size:字体的大小,像素px
    • font-family:字体,幼圆,宋体,楷体…
    • text-decoration: none 取消文字上的下划线
  • 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>font样式</title>
    </head>
    <body>
         <a href="#" style="color: red;">我的第一个超链接</a>  <br/>
         <a href="#" style="font-size: 20px;">我的第二个超链接</a>  <br/>
         <a href="#" style="font-family: 楷体;">我的第三个超链接</a>  <br/>
         <a href="#" style="text-decoration: none;">我的第四个超链接</a>  <br/>
    </body>
    </html>
    
背景色
  • 常用属性

    • background-color:设置背景色
    • background-image:url(背景图片的连接)
  • 举例

    <!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 {
                border: 1px solid black;
                width: 300px;
                height: 300px;
            }
        </style>
    </head>
    <body>
         <div style="background-color: cadetblue;"></div>
         <hr>
         <div style="background-image: url(img/lagou.png);"></div>
    </body>
    </html>
    
浮动
  • 通常默认的排版方式,是将页面中的元素从上到下一一罗列,而实际开发中,需要左右方式进行排版,就需要使用浮动

  • 特点

    • 可以给指定的元素设置浮动,该元素就摆脱了原来普通文档流;漂浮在空中,可以进行左移动也可以进行右移动
  • 基本语法

    选择器{float:属性值;} 
    
  • 常用属性值

    • left:元素向左浮动
    • right:元素向右浮动
    • none:元素不浮动(默认值)
  • 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>浮动</title>
        <style>
            #one {
                border : 1px solid red;
                width: 50px;
                height: 50px;
                float: left;
            }
    
            #two {
                border : 1px solid blue;
                width: 100px;
                height: 100px;
                float:right;
            }
    
            #three {
                border : 1px solid green;
                width: 150px;
                height: 150px;
                float: left;
            }
        </style>
    </head>
    <body>
        <!-- 
            1)让div1左浮动
            2)让div2和div3也左浮动
            3)让div2右浮动   让div1 和div3不浮动 
            4)让div2右浮动   让div1左浮动  div3也左浮动
         -->
    
         <div id="one" class="mystyle"></div>
         <div id="two" class="mystyle"></div>
         <div id="three" class="mystyle"></div>
    </body>
    </html>
    
清除浮动
  • 由于浮动元素不再占用原文档流的位置,所以它会对页面中其他元素的排版产生影响。如果要避免影响,需要使用 clear属性进行清除浮动

  • 基本语法

    选择器{clear:属性值;}
    
  • 常用属性值

    • left:不允许左侧有浮动元素(清除左侧浮动的影响)
    • right:不允许右侧有浮动元素(清除右侧浮动的影响)
    • both:同时清除左右两侧浮动的影响
  • 注意事项

    • 影响自己的浮动,需要清除自己元素的浮动
  • 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>浮动</title>
        <style>
            #one {
                border : 1px solid red;
                width: 50px;
                height: 50px;
                float: right;
            }
    
            #two {
                border : 1px solid blue;
                width: 100px;
                height: 100px;
                float:right;
                clear:both;
            }
    
    
           
        </style>
    </head>
    <body>
    <!-- 
        清除div2的左浮动
     -->
         <div id="one" class="mystyle"></div>
         <div id="two" class="mystyle"></div>
    </body>
    </html>
    
盒子模型
  • CSS 框模型 (Box Model) 规定了元素框处理元素内容、内边距、边框 和 外边距 的方式

  • 我们可以设置这个盒子到其他和盒子之间的距离,使用css的属性:

    • margin,设置外边距
    • margin:同时设置4个外边距
    • margin-top:上外边距
    • margin-bottom:下外边距
    • margin-le:左外边距
    • margin-rigt:右外边距
  • 也可以设置这个盒子中html元素到盒子之间的距离,使用css的属性:

    • padding,设置内边距
    • padding:同时设置4个内边距
    • padding-top:上内边距
    • padding-bottom:下内边距
    • padding-le:左内边距
    • padding-rigt:右内边距
  • 注意事项

    外边距:设置元素在页面的位置

    边框:设置改元素边框的粗细,样式等

    内边距:设置元素内容和边框的举例

    内边距的副作用:如果设置了内边距则会导致div元素变形

  • 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>盒子模型</title>
        <style>
            body {
                margin: 0px 0px 0px 0px;
            }
    
            div {
                border : 1px solid  red;
                width: 200px;
                height: 200px;
                margin-top: 100px;
                margin-left: 100px;
                margin-right: 100px;
                margin-bottom: 100px;
    
                border-top: 10px solid red;
                border-left: 5px solid red;
                border-right: 15px solid red;
                border-bottom: 10px solid red;
                
                padding-top: 100px;
                padding-left: 100px;
                padding-right: 100px;
                padding-bottom: 100px;
    
    
            }
        </style>
    </head>
    <body>
        <!-- 
            1.div距离上面100像素
            2.div距离左边100像素
            3.div的边框 上边框10像素   有边框为5像素  下边框为15像素   做边框为10像素
         -->
        <div>我的div内容</div>
    </body>
    </html>
    

案例

  • 完成如下效果

    在这里插入图片描述

  • 代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>css案例</title>
    
        <style>
            /* 1.清除body的margin */
            body {
                margin: 0px 0px 0px 0px;
            }
    
            /* 2.设置head  booter 这两块div  */
            .head , .footer {
                width: 1519px;
                height: 100px;
                background-color: #7ecef3;
            }
    
            /* 设置main  */
            .main {
                height: 600px;
                width: 100%;
            }
    
            /* 设置leftbar */
            .leftbar{
                width: 400px;
                height: 600px;
                background-color:#89c997 ;
                float: left;
            }
    
            /* 设置conent */
            .content{
                width: 719px;
                height: 600px;
                background-color:#2ba2a8 ;
                float: left;
            }
    
             /* 设置rightbar */
             .rightbar{
                width: 400px;
                height: 600px;
                background-color:#89c997 ;
                float: left;
            }
    
            /* 设置div的字体 */
            div {
                color: blanchedalmond;
                font-size: 40px;
                text-align: center;
            }
    
        </style>
    
    </head>
    <body>
        <!-- 1.编写一个大的div  class box -->
        <div class="box">
            <!-- 2.编写第二个div  head -->
            <div class="head">head</div>
            <!-- 3.编写第三个div  main -->
            <div class="main">
                <!-- 3.1 leftbar -->
                <div class="leftbar">lefbar</div>
                 <!-- 3.2 content -->
                 <div class="content">content</div>
                  <!-- 3.3 rightbar -->
                <div class="rightbar">rightbar</div>
            </div>
            <!-- 4.编写第四个大的div  footer -->
            <div class="footer">footer</div>
        </div>
    </body>
    </html>
    

注:本内容为个人拉勾教育大数据训练营课程笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值