关于前端:前端html和css基础知识

28次阅读

共计 7446 个字符,预计需要花费 19 分钟才能阅读完成。

HTML(网页)

Web 畛域的一些基本概念。

WEB

Web(World Wide Web)叫寰球广域网,俗称万维网(www)。

W3C

W3C(World Wide Web Consortium)叫万维网联盟,是国内最驰名的标准化组织,制订了 web 规范。

WEB 规范

一个网页蕴含了 html 元素 Css JavaScript,Html 元素决定了网页构造,Css 进行了润饰丑化,JavaScript 管制了交互行为和动态效果。

web 规范蕴含了上面三个方面:

  • 构造规范(HTML):用于对网页元素进行整顿和分类。
  • 体现规范(CSS):用于设置网页元素的版式、色彩、大小等外观款式。
  • 行为规范(JavaScript):用于定义网页的交互和行为。

HTML 定义

Html 不是一种编程语言,而是描述性的 标记语言,次要作用是定义内容的构造。

2014 年 10 月万维网联盟(W3C)实现了 HTML5 规范制订,是目前最新的 HTM 版本。

HTML5 的入世,标记着 web 进入一个 富客户端 (具备很强的 交互性 和体验的客户端程序)时代,像 APP 网页,小程序都是 HTML5 的利用场景。

Html5 新个性:

  • 用于绘画的 canvas 元素。
  • 用于媒介回放的 video 和 audio 元素。
  • 对本地离线存储的更好的反对。
  • 新的非凡内容元素,比方 article、footer、header、nav、section。
  • 新的表单控件,比方 calendar、date、time、email、url、search。

页面根本构造

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"> <!-- 字符集 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
      <meta name="Author" content="">
    <meta name="Keywords" content="关键词" />
    <meta name="Description" content="页面形容" />
    <title> 页面题目 </title>
</head>
<body>

</body>
</html>

对于 viewport

viewport 用户网页的可视区域,一个针对挪动网页优化的页面 viewport meta 标签如下:

<meta name="viewport" content="width=device-width, initial-scale=1.0">
  • width:管制 viewport 的大小,能够指定的一个值,如 600,或者非凡的值,如 device-width 为设施的宽度(单位为缩放为 100% 时的 CSS 的像素)。
  • height:和 width 绝对应,指定高度。
  • initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
  • maximum-scale:容许用户缩放到的最大比例。
  • minimum-scale:容许用户缩放到的最小比例。
  • user-scalable:用户是否能够手动缩放。

常见元素

head 区域元素:meta title style link script base。

body 区域元素:

  • div、section、article、aside、header、footer
  • p
  • span、em、strong
  • table、thead、tbody、tr、td
  • ul、ol、dl、dt、dd
  • a
  • form、input、select、textarea、button

元素分类

块级元素:每个元素都是独占一行

  • address – 地址
  • blockquote – 块援用
  • center – 举中对齐块
  • dir – 目录列表
  • div – 罕用块级容易,也是 css layout 的次要标签
  • dl – 定义列表
  • fieldset – form 控制组
  • form – 交互表单
  • h1-h6 – 题目
  • hr – 程度分隔线
  • isindex – input prompt
  • menu – 菜单列表
  • noframes – frames 可选内容,(对于不反对 frame 的浏览器显示此区块内容)
  • noscript –)可选脚本内容(对于不反对 script 的浏览器显示此内容)
  • ol – 排序表单
  • p – 段落
  • pre – 格式化文本
  • table – 表格
  • ul – 非排序列表

行内元素:元素在同一行程度排列

  • a – 锚点
  • abbr – 缩写
  • acronym – 首字
  • b – 粗体
  • big – 大字体
  • br – 换行
  • em – 强调
  • font – 字体设定(不举荐)
  • i – 斜体
  • img – 图片
  • input – 输入框
  • label – 表格标签
  • s – 中划线(不举荐)
  • select – 项目选择
  • small – 小字体文本
  • span – 罕用内联容器,定义文本内区块
  • strike – 中划线
  • strong – 粗体强调
  • sub – 下标
  • sup – 上标
  • textarea – 多行文本输入框
  • tt – 电传文本
  • u – 下划线
  • var – 定义变量

inline-block:元素能够排列在同一行显示,并且能够设置一些块元素属性

通过 Css:display:inline-block 扭转元素。

元素默认款式

很多元素都自带了默认款式,不同浏览器下默认款式体现不统一,为了对立或者满足一些需要咱们需要将所有默认款式清空,这种解决形式又称为 Css Reset,比方:

*{
    margin: 0;
    padding: 0;
}

另外一种计划应用normalize.css,它将不同浏览器下的默认款式进行了对立,

https://github.com/necolas/no…

CSS(层叠样式表)

Css 的单位

html 中的单位是像素 px

相对单位

  • in:英寸,1in = 2.54cm = 96px
  • pc:皮卡,1 皮卡 = 1/16 英寸
  • pt:点,1 点 = 1/72 英寸
  • px:像素,1 点 = 1/96 英寸

绝对单位

  • em:font-size 中绝对于父元素的字体大小,在元素属性中应用是绝对于本身字体大小
  • rem:根元素的字体大小,在元素属性中应用是绝对于根元素字体大小
  • 1h:元素的 line-height
  • vw:视窗宽度的 1%
  • vh:视窗高度的 1%
  • vmin:视窗较小尺寸的 1%
  • vmax:视图大尺寸的 1%

字体属性

属性:字体、行高、色彩、大小、背景、边框、滚动、换行、润饰属性(粗体、斜体、下划线)

p{
    font-size: 20px;         /* 字体大小 */
    line-height: 30px;      /* 行高 */
    font-family: PingFang SC;     /* 字体类型:显示 PingFang SC,没有就显示默认 */
    font-style: italic ;        /*italic 示意斜体,normal 示意不歪斜 */
    font-weight: bold;    /* 粗体或写(400|500|600)*/
    font-variant: small-caps;  /* 小写变大写 */
}

行高(line-height)

个别约定 行高、字号都是偶数,这样保障它们的差肯定偶数除 2 失去整数,如下图所示:

文本垂直居中

对于单行文本能够设置 行高 = 盒子高度

对于多行元素的垂直对齐,咱们能够应用 vertical-align: middle 属性,不过vertical-align 仅实用 inline、inline-block 和 table-cell 元素。

vertical-align: baseline;
vertical-align: sub;
vertical-align: super;
vertical-align: text-top;
vertical-align: text-bottom;
vertical-align: middle;
vertical-align: top;
vertical-align: bottom;
/* 指定长度值 */
vertical-align: 10em;
vertical-align: 4px;
/* 应用百分比 */
vertical-align: 20%;
/* 全局值 */
vertical-align: inherit;
vertical-align: initial;
vertical-align: revert;
vertical-align: unset;

文本属性

  • letter-spacing: 0.5em ; 单个字母之间的间距。
  • word-spacing: 1em; 单词之间的间距。
  • text-decoration: none; none 去掉下划线、underline 下划线、line-through 中划线、overline 上划线。
  • color:red; 字体色彩。
  • text-align: center; 文字对齐形式,属性值能够是:left、right、center、justify。
  • text-transform: lowercase; uppercase(大写)、lowercase(小写)capitalize(首字母大写)。
  • text-indent:10px; 文本首行缩进。
  • text-shadow:2px 2px #ff0000; 文字暗影成果。
  • white-space: normal; 设置元素空白解决,normal,nowrap,break-spaces。

Overflow 属性

内容溢出解决

  • visible:默认值,多余的内容会全副显示进去。
  • hidden:超过元素的内容暗藏。
  • auto:内容超出显示滚动条。
  • scroll:Windows 总是显示滚动条。Mac 和auto 属性雷同。

滤镜

filter:gray()

背景属性

  • background-color:#fff; 设置背景色彩。
  • background-image:url(img.png); 设置图像为背景。
  • background-repeat: no-repeat; no-repeat不要平铺,repeat-x横向平铺;repeat-y纵向平铺。
  • background-position:center top; 设置背景图片在容器的地位,top,bottom,left,right,center。
  • background-attachment:scroll; 设置背景图片随滚动条挪动,scroll(追随滚动),fixed(固定)。
  • background-origin:border-box; css3,border-box(背景绝对于边框框定位),padding-box(背景绝对于填充框定位),content-box(背景绝对于内容框定位)。
  • background-clip:border-box; css3,背景裁切。
  • background-size:cover; css3,调整尺寸,

    • contain(在不裁剪或拉伸图像的状况下,在其容器内尽可能大地缩放图像),
    • cover(尽可能大地缩放图像以填充容器,必要时拉伸图像。),
    • auto(在相应的方向上缩放背景图像,以放弃其固有比例。)。

优先级

了解优先级很重要,有助于咱们排查一些问题。浏览器将优先级分为两局部:HTML 的行内款式和选择器的款式。

行内款式

行内款式是间接作用在元素,它的优先级高于选择器款式,应用 !important 能够进步样式表的优先级。

<div style="font-size:16px">
</div>

选择器款式

<style type="text/css">
    p{font-size: 16px;}
</style>
<link rel="stylesheet" href="style/app.css">

优先级规定如下:

  • 如果选择器的 ID 数量最多的胜出。
  • 如果 ID 数量统一,那么领有最多类的选择器胜出。
  • 如果以上两次比拟都统一,那么领有最多标签名的选择器胜出。

咱们通过下图这种标记形式,就能够判断出选择器的优先级。

两条教训法令

  1. 尽量不要应用 ID 选择器,因为它会大幅晋升优先级。当须要笼罩这个选择器时,通常找不到另一个有意义的 ID,于是就须要复制原来的选择器加上另一个类来让它区别于想要笼罩的选择器。
  2. 不要应用!important。它比 ID 更难笼罩,一旦用了它,想要笼罩原先的申明,就须要再加上一个!important,而且仍然要解决优先级的问题。

根底选择器

  • 类型或标签选择器,匹配指标元素的标签名,如:p,input[type=text],优先级(0,0,1)。
  • 类选择器,匹配 class 属性中有指定类名的元素,如:.box,优先级(0,1,0)。
  • ID 选择器,匹配领有指定 ID 属性的元素,如:#id,优先级(1,0,0)。
  • 通用选择器(*),匹配所有元素,优先级(0,0,0)。

组合选择器

由多个根底选择器组合成的简单选择器。

  • 后辈组合器(单个空格( )示意),比方 .nav li,示意 li 是一个领有 nav 类的元素的后辈。
  • 子组合器(>),匹配的元素是间接后辈,.parent > .child。
  • 相邻兄弟组合器(+),匹配的元素紧跟在前面其它元素前面,div + p。
  • 通用兄弟组合器(~),匹配所有追随在指定元素之后的兄弟元素,它不会选中指标元素之前的兄弟元素,li.active ~ li。

复合选择器

多个根底选择器连起来(两头没有空格)组成一个复合选择器(如:ul.nav)。复合选择器选中的元素将匹配其全副根底选择器,.box.nav 能够选中 class=”box nav”,然而不能选中 class=”box”。

伪类选择器

用于选中某种特定状态的元素,优先级(0,1,0)。

  • :first-child——匹配的元素是其父元素的第一个子元素。
  • :last-child——匹配的元素是其父元素的最初一个子元素。
  • :only-child——匹配的元素是其父元素的惟一一个子元素(没有兄弟元素)。
  • :nth-child(an+b)——匹配的元素在兄弟元素两头有特定的地位。公式 an+ b 外面的 a 和 b 是整数,该公式指定要选中哪个元素。要理解一个公式的工作原理,请从 0 开始代入 n 的所有整数值。公式的计算结果指定了指标元素的地位。下表给出了一些例子。

  • :nth-last-child(an+b)——相似于:nth-child(),但不是从第一个元素往后数,而是从最初一个元素往前数。括号内的公式与:nth-child()里的公式的规定雷同。
  • :first-of-type——相似于:first-child,但不是依据在全副子元素中的地位查找元素,而是依据领有雷同标签名的子元素中的数字程序查找第一个元素。
  • :last-of-type——匹配每种类型的最初一个子元素。
  • :only-of-type——该选择器匹配的元素是满足该类型的惟一一个子元素。
  • :nth-of-type(an+b)——依据指标元素在特定类型下的数字程序以及特定公式抉择元素,相似于:nth-child。
  • :nth-last-of-type(an+b)——依据元素类型以及特定公式抉择元素,从其中最初一个元素往前算,相似于:nth-last-child。
  • :not(<selector>)——匹配的元素不匹配括号内的选择器。括号内的选择器必须是根底选择器,它只能指定元素自身,无奈用于排除先人元素,同时不容许蕴含另一个排除选择器。
  • :focus——匹配通过鼠标点击、触摸屏幕或者按 Tab 键导航而取得焦点的元素。
  • :hover——匹配鼠标指针正悬停在其上方的元素。
  • :root——匹配文档根元素。对 HTML 来说,这是 html 元素,然而 CSS 还能够利用到 XML 或者相似于 XML 的文档上,比方 SVG。在这些状况下,该选择器的抉择范畴更广。还有一些表单域相干的伪类选择器。
  • :disabled——匹配已禁用的元素,包含 input、select 以及 button 元素。
  • :enabled——匹配已启用的元素,即那些可能被激活或者承受焦点的元素。
  • :checked——匹配曾经针对选定的复选框、单选按钮或抉择框选项。
  • :invalid——依据输出类型中的定义,匹配有非法输出值的元素。例如,当 <inputtype=”email”> 的值不是一个非法的邮箱地址时,该元素会被匹配。

更多参考:https://developer.mozilla.org…

伪元素选择器

伪元素选择器能够向 HTML 标记中未定义的中央插入内容,优先级(0,0,1)。

  • ::before——创立一个伪元素,使其成为匹配元素的第一个子元素。该元素默认是行内元素,可用于插入文字、图片或其余形态。必须指定 content 属性能力让元素呈现,如:.nav::before。
  • ::after——创立一个伪元素,使其成为匹配元素的最初一个子元素。该元素默认是行内元素,可用于插入文字、图片或其余形态。必须指定 content 属性能力让元素呈现,如:.nav::after。
  • ::first-letter——用于指定匹配元素的第一个文本字符的款式,如:h1::first-letter。
  • ::first-line——用于指定匹配元素的第一行文本的款式。
  • ::selection——用于指定用户应用鼠标高亮抉择的任意文本的款式。通常用于扭转选中文本的 background-color。只有多数属性能够应用,包含 color、background-color、cursor、text-decoration。

属性选择器

属性选择器用于依据 HTML 属性进行匹配元素,优先级(0,1,0)。

  • [attr]——匹配的元素领有指定属性 attr,无论属性值是什么,如:input[disabled]。
  • [attr=”value”]——匹配的元素领有指定属性 attr,且属性值等于指定的字符串值,如:input[type=”radio”]。
  • [attr^=”value”] ——“结尾”属性选择器。该选择器匹配的元素领有指定属性 attr,且属性值的结尾是指定的字符串值,例如:a[href^=”https”]。
  • [attr*=”value”]——“蕴含”属性选择器。该选择器匹配的元素领有指定属性 attr,且属性值蕴含指定的字符串值,如:[class*=”sprite-“]。
  • [attr~=”value”]——“空格分隔的列表”属性选择器。该选择器匹配的元素领有指定属性 attr,且属性值是一个空格分隔的值列表,列表中的某个值等于指定的字符串值,如:a[rel=”author”]。
  • [attr|=”value”]——匹配的元素领有指定属性 attr,且属性值要么等于指定的字符串值,要么以该字符串结尾且紧跟着一个连字符(-)。

小结

本文要点回顾,欢送留言交换。

  • Web 中的一些基本概念介绍。
  • Html 页面构造,元素分类。
  • Css 优先级。
  • Css 选择器,(根底选择器,组合选择器,复合选择器,伪类选择器,伪元素选择器,属性选择器)。

正文完
 0