Blogger Information
Blog 6
fans 0
comment 1
visits 3531
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS基础2:伪类选择器,字体图标,盒模型
超的php学习历程
Original
540 people have browsed it

一、伪类选择器

伪类:伪代表假,类代表权重(class级别),可以分发结构伪类和状态伪类。
结构伪类:根据元素位置获取元素。
状态伪类:根据元素状态获取元素。
重点学习结构伪类。
结构伪类主要用来选择子元素,需要知道一个起点然后进行查询。

实例一:查询

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>伪类查询</title>
  8. </head>
  9. <body>
  10. <!-- 创建一个8行单列的列表 -->
  11. <!-- ul.list>li{item$}*8 -->
  12. <ul class="list">
  13. <li>item</li>
  14. <li>item</li>
  15. <li>item</li>
  16. <li>item</li>
  17. <li>item</li>
  18. <li>item</li>
  19. <li>item</li>
  20. <li>item</li>
  21. </ul>
  22. <style>
  23. /* <!-- 通过伪类选择任意一行,进行操作, */
  24. /* 一共8行,取值【1-8】 -- > */
  25. .list > li:nth-of-type(4) {
  26. background: green;
  27. }
  28. /* 选中第一行 ,可以用first-child,但是first-child会忽略数据类型,所以以后都用first-of-type来处理*/
  29. /* 属于单元素伪类 */
  30. .list > li:first-of-type {
  31. background-color: aquamarine;
  32. }
  33. /* 选中最后一行 ,属于单元素伪类*/
  34. .list > li:last-of-type {
  35. background-color: brown;
  36. }
  37. /* nth-of-type(an+b)参数计算 */
  38. /* a:系数,取值0,1,2,3。。。h */
  39. /* n:权数,取值从0,1,2,3。。。自动计算 */
  40. /* b:偏移量,0,1,2,3,.... */
  41. /* 举例 */
  42. /* 偶数行字体设置为italic */
  43. .list > li:nth-of-type(2n) {
  44. font-style: italic;
  45. }
  46. /* 奇数行字体大小20px,用2n-1或2n+1 */
  47. .list > li:nth-of-type(2n-1) {
  48. font-size: 20px;
  49. }
  50. /* 对于常用语法有语法糖,2n用even表示,2n+1用odd表示。 */
  51. /* 偶数行鼠标移上去字体变为30px */
  52. .list > li:nth-of-type(even):hover {
  53. font-size: 30px;
  54. cursor: pointer;
  55. }
  56. /* 奇数行字体颜色设置为lightgreen */
  57. .list > li:nth-of-type(odd) {
  58. color: lightgreen;
  59. }
  60. </style>
  61. </body>
  62. </html>

实例二:表单伪类

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>表单伪类</title>
  8. </head>
  9. <body>
  10. <input type="text" />
  11. <!-- 禁用表单,减少攻击项 -->
  12. <p><input type="text" disabled /></p>
  13. <input type="radio" name="sex" id="m" value="0" /><label for="m"></label>
  14. <input type="radio" name="sex" id="f" value="1" /><label for="f"></label>
  15. <button>提交</button>
  16. <style>
  17. /* 将iput设置为disbled的input背景色设置为lightgrey */
  18. input:disabled {
  19. background-color: lightgrey;
  20. }
  21. /* 将enbaled的input设置背景未浅绿 */
  22. input:enabled {
  23. background-color: limegreen;
  24. }
  25. /* 将选择按钮选中后绑定的lable的字体颜色变为红色 */
  26. input:checked + label {
  27. color: red;
  28. }
  29. /* 设置button样式,宽100px,高30px,无边框,无边线,背景绿色,字体白色 */
  30. button {
  31. width: 100px;
  32. height: 30px;
  33. border: none;
  34. outline: none;
  35. background-color: seagreen;
  36. color: snow;
  37. }
  38. /* 鼠标移动到button,背景变为lightsalmon色,鼠标变为小手pointer */
  39. button:hover {
  40. background-color: lightsalmon;
  41. cursor: pointer;
  42. }
  43. /* 鼠标聚焦到input,背景颜色变为lightseegreen */
  44. input:focus{
  45. background-color: lightseagreen;
  46. }
  47. }
  48. </style>
  49. </body>
  50. </html>

二、字体图标

字体图标引用第三方,目前用的最多的是阿里图表,因为免费,样式也不错。
网站地址https://www.iconfont.cn
所有的图像图标实际都是文本。
有三种引用方式:unicode,font class,symbol,推荐使用更方便的font class方式引用。
引用步骤:

  1. 在网站选择需要的图标,下载源码,将源码包解压后放到本地项目中。
  2. 打开源码中的demo_index.html按font class的引用步骤操作,如下:
    第一步:引入项目下面生成的 fontclass 代码:
    <link rel="stylesheet" href="./iconfont.css">
    第二步:挑选相应图标并获取类名,应用于页面:
    <span class="iconfont icon-xxx"></span>
    “ iconfont” 是你项目下的 font-family。可以通过编辑项目查看,默认是 “iconfont”。

    实例演示:字体图标引用

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    7. <link rel="stylesheet" href="./font_icon2/iconfont.css" />
    8. <title>字体图标引用</title>
    9. </head>
    10. <body>
    11. <!-- 引用图标class,第一个class必须是iconfont,第二个class是对应图标的class名称 -->
    12. <p><span class="iconfont icon-chart_bar"></span></p>
    13. <p><span class="iconfont icon-user"></span></p>
    14. <p><span class="iconfont icon-home home"></span></p>
    15. <p><span class="iconfont icon-show eye"></span></p>
    16. <!-- 通过style设置图表属性,因为图标本质上是文本,所以文本的相关属性设置均可使用 -->
    17. <style>
    18. .iconfont.icon-chart_bar {
    19. font-size: 80px;
    20. color: red;
    21. }
    22. .iconfont.icon-user {
    23. font-size: 50px;
    24. color: royalblue;
    25. }
    26. .home {
    27. font-size: 50px;
    28. color: seagreen;
    29. }
    30. .eye {
    31. font-size: 50px;
    32. color: tomato;
    33. }
    34. </style>
    35. </body>
    36. </html>

    三、盒模型

    常用的盒模型属性:width,height,border,padding,margin。
    实例演示常用属性:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    7. <title>常用盒模型属性</title>
    8. </head>
    9. <!-- 创建5个box实例供实验使用 -->
    10. <body>
    11. <div class="box1"></div>
    12. <div class="box2"></div>
    13. <div class="box3"></div>
    14. <div class="box4"></div>
    15. <div class="box5"></div>
    16. <style>
    17. /* 设置box1宽200px,高200px,边框宽度10px,虚线,黑色,背景色浅绿 */
    18. /* 实际box1的宽带计算=200+30*2+10*2=280px,比设计的200px变大了 */
    19. /* 此时要想让box1的实际大小为设置的200px,需要添加box-sizing=border-box属性。 */
    20. .box1 {
    21. width: 200px; /*宽度*/
    22. height: 200px; /*高度*/
    23. border: 10px dashed black; /*边框宽度,样式,颜色*/
    24. background-color: lightgreen; /*box1的背景色*/
    25. padding: 20px; /*内边距,呼吸区*/
    26. box-sizing: border-box; /*box1宽带包含border和padding宽度*/
    27. margin: 10px; /*设置box间距10px*/
    28. }
    29. .box2 {
    30. width: 200px; /*宽度*/
    31. height: 200px; /*高度*/
    32. /* border: 10px solid black;边框宽度,样式,颜色 */
    33. background-color: lightsalmon; /*box1的背景色*/
    34. /* 四值 , 顺时针 */
    35. /* padding: 上 右 下 左 ; */
    36. /* padding: 5px 10px 15px 20px; */
    37. /* 三值 , 中间表示左右*/
    38. /* padding: 5px 10px 15px; */
    39. /* 双值: 第1个上下,第2个左右 */
    40. /* padding: 5px 10px; */
    41. /* 单值, 四个方向全一样 */
    42. /* padding: 5px; */
    43. /* padding: 是透明的,只有宽度可以设置 */
    44. padding: 5px 10px 15px 20px; /*内边距,呼吸区*/
    45. box-sizing: border-box; /*box1宽带包含border和padding宽度*/
    46. margin: 10px; /*设置box间距10px*/
    47. background-clip: content-box; /*边框背景裁剪到内容区,默认是整个box,如box1*/
    48. /* 分别设置border得4个边框样式 */
    49. border-top: 5px dashed red;
    50. border-bottom: 8px dotted blueviolet;
    51. border-left: 6px solid yellowgreen;
    52. border-right: 4px double brown;
    53. }
    54. /* 通用初始化box方案 */
    55. .box3 {
    56. padding: 0px;
    57. border: 0px;
    58. box-sizing: border-box;
    59. }
    60. </style>
    61. </body>
    62. </html>

    四、盒模型常用单位

    px,em,rem,vh,vw
    px:是决定单位,和设备相关。
    em/rem:相当单位,em相当于当前浏览器的默认字号,推算得1em=16px,1rem=10px。使用该单位可以动态调整大小,利于布局,同时也会受到其他因素限制。
    vh/vw:相对固定值,将视口(可视窗口)高度/宽度分成100份,是个比值。1vh=1/100,1vw=1/100
    抄录圣杯布局:

    1. <!DOCTYPE html>
    2. <html lang="zh-CN">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    7. <title>圣杯布局</title>
    8. </head>
    9. <body>
    10. <header>header</header>
    11. <aside class="left">left</aside>
    12. <main>main</main>
    13. <aside class="right">right</aside>
    14. <footer>footer</footer>
    15. <style>
    16. * {
    17. padding: 0;
    18. margin: 0;
    19. box-sizing: border-box;
    20. }
    21. header,
    22. footer {
    23. background-color: lightgreen;
    24. }
    25. body {
    26. display: grid;
    27. grid-template-columns: 6em 1fr 6em;
    28. grid-template-rows: 2em minmax(20em, 30em) 2em;
    29. }
    30. aside {
    31. background-color: lightblue;
    32. }
    33. main {
    34. background-color: yellow;
    35. }
    36. header,
    37. footer {
    38. grid-column: span 3;
    39. }
    40. </style>
    41. </body>
    42. </html>

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post