HTML文档结构,语义化标签,input标签,表单,视频,音频...CSS内联,外部,内部样式,选择器及权重,css3新增属性,动画,媒体查询,字体大小...

css3

html5
grid网格布局

文档结构

HTML文档结构一般包括包括标记(Html)、头部(Head)、主体(Body)三部分。

标记< html>:说明该文件是用超文本标记语言来描述的,它是文件的开头,而则表示该文件的结尾,它们是超文本标记语言文件的开始标记和结尾标记。

头部:表示头度部信息的开始和结尾。知头部中包含的标记是页面的标题、序言、说明等内容,它本身不作为内容来显示,但影响网页显示的效果。

主体:网页中显示的实际内容均包含在这2个正文道标记符之间。正文标记符又称为实体标记。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
</body>
</html>

语义化标签

使文档结构清晰,有利于浏览器对页面的读取,便于团队开发和维护,更具可读性,遵循W3C标准,减少差异化。但低端浏览器不支持,比如IE8及以下版本,如何让ie8及以下版本支持h5新增标签呢,必须手动引入HTML5shiv. js文件(百度html5shiv下载就可以)。

一般移动端布局就用到header,main,footer.

<header></header>头部

<nav></nav>导航栏

<section></section>区块(有语义化的div)

<main></main>主要区域

<artical></artical>主要内容

<aside></aside>侧边栏

<footer></footer>底部

input标签全部type类型:

参考网址

原始:button,checkbox,file,hidden,image,password,radio,reset,submit,text(文本字段的默认宽度是 20 个字符)
h5新增:color,date,datetime-local,month,week,time,email,number,range,search(属性
),tel,url
在这里插入图片描述

表单:

HTML 表单用于搜集不同类型的用户输入,表单本身是不可见的。
参考网址

<form>
name1:<input type="text" name="firstname">
<br>
name2:<input type="text" name="lastname">
</form>

在这里插入图片描述

视频:video

h5新增标签
参考网址

<video src="movie.ogg" controls>
</video>

在这里插入图片描述

音频:

h5新增:
参考地址

<audio src="/i/horse.ogg" controls>
</audio>

在这里插入图片描述

CSS样式:

内联样式:

在标签中添加属性style,在style里面写样式。

<div style="color:red;"></div>

内部样式:

在里写一个

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    div{
      height: 50px;
      width: 50px;
      background-color:aquamarine;
    }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

外部样式:

在在里写一个,引入外部的css文件

<link rel="stylesheet" href="./test.css">

选择器:

#id选择器,.class选择低,element标签选择器,:hover等伪类选择器,[type=“date”]等属性选择器,::after等伪元素选择器。
选择器参考

权重

权重的表达方式如:0,0,0,0;
权重规则:HTML标签(类型选择符)的权重是1,class的权重是10,id的权重是100。
类型选择符的权重为0001
class选择符的权重为0010
id选择符的权重为0100
伪类选择符的权重为0010
包含选择符的权重:为包含选择符的权重之和
内联样式的权重为1000
继承样式的权重为0000
群组集合选择符权重为他本身
注:如果权重相同时,则执行后写的样式;

在这里插入图片描述

移动端布局相关:

加了下面这句话

<meta name="viewport" content="width=device-width, initial-scale=1.0">

在这里插入图片描述
没加
在这里插入图片描述

rem和em

rem(font size of root(html) element)是指相对于根元素 (html)的字体大小(font-size)的单位。Em: 相对于元素本身的字体大小来取值。Rem:相对于根节点的字体大小取值。

vw和vh

ps:百分比单位是相对于父元素的宽高。
vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。

元素所展示的大小(设计图固定大小)=(vw*设计稿宽度)/100

vw = 元素所展示的大小(设计图固定大小)*100/设计稿宽度

媒体查询

    @media all and (min-width:320px){
    div{
	      height: 320px;
	      width: 320px;
	      background-color:aquamarine;
	    }
    }
    @media all and (min-width:375px){
	    div{
	      height: 375px;
	      width: 375px;
	      background-color:aquamarine;
	    }
    }
    *{
      padding: 0;margin: 0;
    }

媒体查询+rem布局

使用媒体查询更改根节点字体大小,页面中元素的单位用rem表示

  <style>
    @media all and (min-width:320px){
      html{
        font-size: 32px;
      }
    }
    @media all and (min-width:375px){
      html{
        font-size: 37.5px;
      }
    }
    *{
      padding: 0;margin: 0;
    }
    div{
      height: 10rem;
      width: 10rem;
      background-color:aquamarine;
    }
  </style>

vw单位 + rem单位布局

    html{
      /* 例:1vw=3.2px,视窗320px的1% */
      font-size: 10vw;
    }
    *{
      padding: 0;margin: 0;
    }
    div{
      height: 10rem;
      width: 10rem;
      background-color:aquamarine;
    }

另一种,比较方便计算

    html{
      /* 1vw=3.2px */
      /* 31.25vw=100px: 10vw; */
      font-size: 31.25vw;
    }
    *{
      padding: 0;margin: 0;
    }
    div{
      height: 3.2rem;
      width: 3.2rem;
      /* 
      1rem=100px;
      width: 320px;
      width:3.2rem
       */
      background-color:aquamarine;
    }

rem.js + rem单位布局

(1)在vscode中的扩展安装cssrem插件,文件—》首选项—》设置—》(搜索cssrem,改变rootfontsize为设计图 / 10的数字)

(2)在页面中使用script标签引入rem.js文件(在js文件的18行把数字改为设计图的大小)

(3)在页面中的布局,量出多少值就写多少,然后使用它转换的rem的值。(这样子插件会自动转化成为rem的值)

原理:通过js获取设备的宽度,来计算根节点的字体大小,rem得出来的值就不一样,就到达不同页面能适配

sass + vw单位布局

安装easysass插件。保存的时候回自动编译成.min.css文件。

(1)使用sass的函数:

@function vw($px) {

    @return ($px / 设计图的宽度) * 100vw;

}

(2)页面中布局

header {

        height: vw(量出来的值);

        background: green;

        font-size: vw(48);

    }

dpr

  • 当设计图宽度为750px或者640px时,对应的dpr都为2,对应的设备宽度为375px和320px。
  • 1vw=3.75px,100vw=375px。1vw=3.2px,100vw=320px;
  • 如果html的font-size为10vw即37.5px。
  • 那么设备的宽度为375px时则为10rem。
  • 设计图宽度为1080px时,dpr为3,对应设备宽度为320px
/*100vw=375px
?vw=100px
100*100/375=26.6666666vw*/

html{
	font-size:26.666666vw
	/*即font-size:100px*/
}
p{
	/*如果height量出来为100px;则height为1rem,如果量出来是150px,则为1.5rem*/
	height:1.5rem;
}

逻辑像素与物理像素

逻辑像素=物理像素/dpr/100rem
如:?=320px/2/100=1.6rem
逻辑像素:写在代码中的值。物理像素:设计图上的值。

sass预编译语言

sass 自称世界上最成熟、最稳定、最强大的专业级CSS扩展语言!

是css的辅佐工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能

1、sass的优点

  • 完全兼容 CSS3
  • 在 CSS 基础上增加变量、嵌套 (nesting)、混合 (mixins) 等功能
  • 通过[函数]进行颜色值与属性值的运算
  • 提供[控制指令 (control directives)]等高级功能
  • 自定义输出格式

2、sass的语法格式

(1)后缀名为: .scss的文件格式(常用)

(2)后缀名为: .sass的文件格式

3、css的扩展功能

(1)嵌套规则
.box{
	header{
		height:100px;
		width:100px;
	}
	footer{
		width:200px;
		height:200px;
		color:red;
	}
}

编译为:

.box header{
	height:100px;
	width:100px;
}
.box footer{
	width:200px;
	height:200px;
	color:red;
}

优点:嵌套功能避免了重复输入父选择器,而且令复杂的 CSS 结构更易于管理:

(2)父选择器(&)

在嵌套 CSS 规则时,有时也需要直接使用嵌套外层的父选择器,例如,当给某个元素设定 hover 样式时

.nav {
	li{
		height:40px;
		width:100px;
		background:#ccc;
		a{
			display:block;
			width:100%;
			height:100%;
		}
		&:hover{
			backgorund:orange;
		}
	}
}

编译后:

.nav li{
	height:40px;
	width:100px;
	background:#ccc;
}
.nav li a{
	display:block;
	width:100%;
	height:100%;
}
.nav li:hover{
	background:orange;
}
(3)属性嵌套

有些 CSS 属性遵循相同的命名空间 ,比如 font-family, font-size, font-weight 都以 font 作为属性的命名空间。为了便于管理这样的属性,同时也为了避免了重复输入,Sass 允许将属性嵌套在命名空间中

.funky {
  font: {
    family: fantasy;
    size: 30em;
    weight: bold;
  }
}

编译后:

.funky {
  font-family: fantasy;
  font-size: 30em;
  font-weight: bold;
}

4、变量

SassScript 最普遍的用法就是变量,变量以美元符号开头,赋值方法与 CSS 属性的写法一样:

$width:200px;

.box {
    .box1 {
        width: $width;
        height: 100px;
       border: 1px solid red;
    }
}

变量支持块级作用域,嵌套规则内定义的变量只能在嵌套规则内使用(局部变量),不在嵌套规则内定义的变量则可在任何地方使用(全局变量)。将局部变量转换为全局变量可以添加 !global 声明:

.box {
    .box1 {
   // 在.box里面定义局部变量,只能由.box里面调用,如果想要其他的元素也可以调用,就给变量后面添加!global
        $width: 200px !global;
        width: $width;
        height: 100px;
        border: 1px solid red;
    }

    .box2 {
        width: $width;
        height: $width;
        border: 1px solid green;
    }
}

5、函数指令

Sass 支持自定义函数,并能在任何属性值或 Sass script 中使用:

格式:

@function 函数名(参数){
	@return 值;
}
.box{
	width:函数名(100px)
}

例如:

  • 返回值要带单位的话得*1vw,不能return ($px)vw,这样编译出来是100 vw而不是100vw
  • 且变量,无论是参数变量,局部变量等等前面都要加美元符号
  • $变量名
//定义函数
@function vw($px) {
    @return ($px / 750) * 100vw;
}

//调用函数
.box2 {
	height: vw(80);
	border: 1px solid green;
}

link和import导入外部样式的区别

差别1:老祖宗的差别:link属于XHTML标签,而@import完全是CSS提供的一种方式。 link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS。
差别2:加载顺序的差别:当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式。
差别3:兼容性的差别。:@import是CSS2.1提出的,所以老的浏览器不支持,@import只在IE5以上的才能识别,而link标签无此问题。
差别4:使用dom控制样式时的差别:当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的.

字体图标

字体图标的使用

  • 使用别人的字体图标
    在这里插入图片描述
    然后登录注册
    选择自己需要的字体图标,加入购物车
    在这里插入图片描述
    点击右上角购物车,将图标添加至项目
    在这里插入图片描述
    选择Unicode或者class,并下载到本地
    在这里插入图片描述
    解压并引入到项目中,打开demo示例,查看用法,在HTML文件中引入css文件。
    在这里插入图片描述

在这里插入图片描述
在浏览器打开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值