博客列表 >html学习:第5章 css与html文档

html学习:第5章 css与html文档

王小飞
王小飞原创
2020年05月11日 17:39:34950浏览

css 与文档

1. css 是什么

序号 术语 描述
1 css Cascading Style Sheets缩写(层叠样式表)
2 样式 css 可以影响一个或一组”文档”的表现样式
3 文档 包括但不限于 html,也包括 xml(暂不讨论)

ccs相当于html的装饰品,这个装饰品由我们自己来diy


2. 元素与元素框

  • 页面中显示的内容称为元素, 元素显示在浏览器为它生成的元素框
  • 查看页面中所有元素生成的”框”: * {outline: 1px dashed red}
  • 根据元素框中的内容提供者, 可将元素分为二大类:
序号 术语 描述
1 置换元素 元素框内容由外部资源提供,元素框就是占位符<img>,<input>..
2 非置换元素 元素框内容用户提供,浏览器生成,如<p>,<span>

置换元素是引用外部资源,非置换元素则是自己的文字表达。


3. 元素的显示方式

3.1 元素类型

序号 类型 描述
1 块级元素 默认生成一个填满父级内容区的元素框,且二侧不能有其它元素,如<div>,<p>
2 行内元素 默认在一行文本内生成元素框,不打断所在行,如<a>,<span>
3 行内块元素 默认在一行文本内生成元素框,不打断所在行,但支持宽高,如<img>

浏览器根据元素类型生成不同的元素框: “块级元素框” 和 “行内元素框”

块元素是默认不换行的

3.2 display 属性

  • 每个元素都可以通过style="display:type控制它的显示类型,即生成什么样的”元素框”
  • display属性常用值
序号 属性值 描述
1 inline默认 行内元素,<span>, <a>
2 block 块级元素,<div>,<p>
3 inline-block 行内块级元素,<img>
4 list-item 块级: 列表元素,<li>
5 table 块级: 表格元素,<table>
6 flex 弹性元素
7 grid 网格元素

4. css 应用到 html 上

序号 属性值 描述 备注
1 link标签 <link rel="stylesheet" href="..." /> 外部样式
3 @import指令 `@import url(…) @import ‘…’` 外部样式
2 <style>元素 <style>...</style> 内部样式
4 style=""属性 <tag style="..."> 行内样式

外部 css 样式表文档,默认扩展名为: .css


5. css 文档的内容

5.1 样式规则

  • css 文档中必不可少的内容就是: 样式规则
  • css 语法:selector {property: value;...}
组成 描述
selector 选择符,或者称”选择器”,决定文档中哪部分受到影响
{property: value;...} 声明块,由 “属性” 与 “属性值” 二部分组成

5.2 厂商前缀

  • 厂商前缀: 各浏览器厂商用来测试专属规则的,具有实验性和先进性
  • 得到用户广泛认可的厂商前缀规则, 是有可能进入 W3C 标准的
  • 随着浏览器之间的差异逐渐消失, 厂商前缀最终会走向消亡

常用厂商前缀:

序号 前缀 描述
1 -moz- 基于Mozilla的浏览器,如FireFox(火狐)
2 -ms- 基于微软Internet Explorer的浏览器
3 -o- 基于Opera(欧朋)的浏览器
4 -webkit- 基于WebKit内核的浏览器,如Chrome,Safari
5 -epub- 基于国际数字出版论坛制定的格式

5.3 处理空白

  • 与 html 文档类似, css 也支持使用空白符来格式化文档,增强可读性
  • css 中的多个空白符, 会全部合并成一个空白符显示
  • 空白符,可以由空格, 制表符, 换行符生成
  • 当属性值可有多个关键字时, 必须使用空白符分开

5.4 css 注释

  • 单行/多行: /* 注释内容 */
  • 注释可以写到样式规则外部,也可以写到内部
  • 注释不允许嵌套

6. 媒体查询

  • 媒体查询: 设置浏览器使用指定的样式表的媒体

6.1 使用场景

序号 场景 描述
1 <link> <link media="screen,print">
1 <style> <style media="screen,print">
1 @import @import url(...) screen,print;
1 @media @media screen,print {...}

6.3 媒体类型

媒体类型是不同媒体的标识符

序号 类型 描述
1 all 所有媒体类型,即不限制
2 print 打印机,预打印预览使用
3 screen 屏幕,如浏览器等用户代理
4 projection 幻灯片

多种媒体类型之间使用逗号分隔: @media screen, print

6.4 媒体描述符

  • 媒体类型通常会添加”媒体描述符”进行精准限制,例如设置媒体尺寸,分辨率等
  • 媒体描述符的语法与 css 样式声明非常类似,如min-width: 500px
  • 与 css 声明的不同之处在于,媒体描述符允许没有值,如print and (color)
  • 多个 “媒体描述符” 之间使用 “逻辑关键字” 连接, 如 andnot
  • and表示多个”媒体描述符”必须同时满足, not则是整个查询取反,且必须写在and前面

常用 “媒体描述符”(显示区域相关)

序号 媒体描述符 描述
1 width 显示区域宽度
2 min-width 显示区域最小宽度
3 max-width 显示区域最大宽度
4 device-width 设备显示区域宽度
5 min-device-width 设备显示区域最小宽度
6 max-device-width 设备显示区域最大宽度
7 height 显示区域高度
8 min-height 显示区域最小高度
9 max-height 显示区域最大高度
10 device-height 设备显示区域高度
11 min-device-height 设备显示区域最小高度
12 max-device-height 设备显示区域最大高度

max-widthmax-device-width区别:

  • max-width: 浏览器显示区域宽度,与设备无关,通常用于 PC 端
  • max-device-width: 设备分辨率的最大宽度,通常用于移动端

1.非置换元素与置换元素,单标签与双标签

代码演示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. * {
  9. /* 给所有块写一个边框线 颜色为红色 */
  10. outline: 1px dashed red;
  11. background-color: rgb(46, 176, 228);
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <!-- 非置换元素:双标签 -->
  17. <!-- 块的背景颜色 -->
  18. <p style="background-color: rgb(228, 46, 188);">我是一个p标签</p>
  19. <!-- 置换元素: 单标签 , 双标签 -->
  20. <br />
  21. <img src="2.jpg" alt="" width="100" height="100" />
  22. <br />
  23. <br />
  24. <input type="text" style="width: 50px;" />
  25. <a href="" style="width: 50px;">我是a标签 前面是表单</a>
  26. <br />
  27. <strong style="width: 100px;">我是非置换元素 双标签</strong>
  28. <!-- 行内元素,如果是非置换元素的话, 不能设置大小,
  29. 如果是置换元素,可以设置宽高, 对于这类元素,称之为行内块元素 -->
  30. </body>
  31. </html>

效果图片:

2.引用css文件

代码实列

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <link rel="stylesheet" href="style/style2.css" />
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <h2>这里演示将引入css文件</h2>
  11. <ul>
  12. <li>略微修改宽度</li>
  13. <li>修改背景颜色为绿色</li>
  14. <li>引入css文件样式列表3</li>
  15. <li>引入css文件样式列表4</li>
  16. </ul>
  17. </body>
  18. </html>

3.引用单个css文件

代码实列

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <link rel="stylesheet" href="style/style2.css" />
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <h2>我的购物车【购物车列表演示】</h2>
  11. <ul>
  12. <li>苹果手机</li>
  13. <li>小米手机</li>
  14. <li>IQOO游戏手机</li>
  15. </ul>
  16. </body>
  17. </html>

效果

4.参数列表

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <!-- 在html文档中如果添加其它内容,必须通过标签的方式加入 -->
  8. <!-- 内部样式表, 写在当前的html文档中, 仅在当前文档有效 -->
  9. <style>
  10. @import "style/style1.css";
  11. /* 将style1.css复制到这个位置 */
  12. h2 {
  13. color: green;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <h2>参数列表演示</h2>
  19. <ul>
  20. <li><strong style="color: coral;">手机品牌</strong> :IQOO</li>
  21. <li><strong style="color: coral;">手机价格</strong>: 3299</li>
  22. <li><strong style="color: coral;">内存大小</strong>: 64GB layui</li>
  23. <li><strong style="color: coral;">像素大小</strong>:2000万后置相机</li>
  24. </ul>
  25. </body>
  26. </html>

效果图

5.css样式写在html中

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>媒体查询</title>
  7. <style>
  8. h1 {
  9. color: green;
  10. }
  11. body {
  12. background-color: cyan;
  13. }
  14. /* 大于等于500px以下样式有效 */
  15. @media screen and (min-width: 500px) {
  16. h1 {
  17. color: red;
  18. }
  19. body {
  20. background-color: wheat;
  21. }
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <h1>Hello, 欢迎来学习我的课程</h1>
  27. </body>
  28. </html>

效果

6.媒体查询

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. .nav {
  9. height: 80px;
  10. background-color: rgb(101, 190, 241);
  11. display: flex;
  12. align-items: center;
  13. }
  14. .nav ul {
  15. display: flex;
  16. list-style: none;
  17. }
  18. .nav ul a {
  19. color: rgb(224, 71, 10);
  20. text-decoration: none;
  21. padding: 0 15px;
  22. }
  23. /* 局部媒体查询,当屏幕宽度小于400px,不要显示菜单了 */
  24. @media screen and (max-width: 300px) {
  25. .nav ul {
  26. display: none;
  27. }
  28. }
  29. </style>
  30. </head>
  31. <body>
  32. <div class="nav">
  33. <div class="log">LOGO</div>
  34. <ul>
  35. <li>
  36. <a href="">首页</a>
  37. <a href="">视频</a>
  38. <a href="">问答</a>
  39. <a href="">下载</a>
  40. </li>
  41. </ul>
  42. </div>
  43. </body>
  44. </html>

设置屏幕小于300不显示菜单

当屏幕宽度大于300显示菜单

总结:本节课详细了解了css样式如何写,网页上的元素都分哪些类,媒体查询可以用在手机页面的开发上,做自适应网页。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议