前端
什么叫前端:
所有用户能看到的一系列能交互的界面
前端例子:
广义上的前端:网页、pc端应用exe、移动应用app、微信小程序...
狭义上的前端:
以html5为基础的前端:网页、app、微信小程序..
html5
什么叫html5:
超文本标记语言(超越普通文本范围,用特殊标记来识别的一种语言),没有对错,只有有无效果之分
注:.html文件可以双击直接在浏览器中打开,被浏览器解析被显示给用户查看
前端三剑客
1.html5:页面结构框架
学习方向:掌握转义字符、指令和标签三大组成部分
学习目的:学会使用标签来完成标签的嵌套结构
2.css3:页面布局与样式
3.javascript:页面交互逻辑
html使用
标签:
什么叫标签:
由<>包裹,以字母开头,后面可以结合数字和合法字符,且能被浏览器解析,这种标记称之为标签
例如:<abc -1>
标签的作用:
1.具有语义
例如:<br>换行作用
2.具有作用范围
例如:<h1>a.中间就是标签的作用范围,b.可以标签来控制,c.具有默认样式,比如这个是加粗的</h1>
3.标签可以修改内容样式
例如:<p style="color: red">123</p>
转义字符(将 原本代表换行的,变成普通字符串‘ ’):
什么叫转义字符:
由 &与;包裹,中间可以由10进制数字组合,也可以由特殊单词缩写组合,来表示一些转义字符
例如:> 转义成 >
< 转义成 <
指令:
什么叫指令:
由<>包裹,以!开头
指令的类型:
1.文档类型指令:<!doctype html>
表示该文档采用html5这种语法
2.注释:<!-- 注释 -->
标签
<!DOCTYPE html> <html lang="zh"> <!-- html:页面根标签 ,lang="zh"告诉浏览器页面的语言, 比如lang="en",浏览器可以识别出这是英语语言,是否需要翻译 --> <head> <!-- head:头标签 - 作用:1.页面编码、2.页面标签标题、3.页面样式、4.页面脚本 --> <meta charset="utf-8"> <!--页面编码--> <tItlE>标签</tItlE> <!--页面标签标题--> <style></style> <!--页面样式--> <script></script> <!--页面脚本--> </head> <body> <!-- body:体标签 - 作用:1.页面内容、2.页面脚本 --> <!-- 页面内容 --> <!-- a.标题:h1~h6 --> <h1>一级标题</h1> <!-- <h1>一级标题</h1>这个标签的语义:一般一个页面只出现一次,代表该页面的主内容解释 --> <h2>二级标题</h2> <!——没有语义,随便用——> <h6>六级标题</h6> <!——没有语义,随便用——> <!-- b.段落:p --> <p>段落</p> <!——上面的都会自动换行——> <!——上面的都不会会自动换行——> <!-- c.文本相关:一般会被p标签嵌套 --> <span>span标签</span> <!——span没有任何效果,一般是作用域的划分,比如p标签套sapn标签,span标签再套下面标签——> <b>普通加粗标签</b> <strong>以加粗方式 ,强调的标签</strong> <i>斜体标签</i> <em>普通以斜体方式 ,强调的标签</em> <sup>上角标</sup> <sub>下角标</sub> <!--d.功能标签--> <br> <!--换行--> <hr> <!--分割线--> <a href="https://www.baidu.com" target="_self">前往百度</a> <!--超链接:网页转跳, target: 默认_self ,在当前页面打开新的页面 _blank,在新页面打开新页面--> <a href="1.第一个页面.html" target="_self">第一个页面</a> <!--站内转跳,也就是在文件夹下有一个 1.第一个页面.html 这个文件, 那就可以在主页面跳到 1.第一个页面.html 这个页面--> <h1 id="top">一级标题</h1> <!--锚点--> <a href="#top">go top</a> <!--本页转跳,转跳到锚点,#代表id--> <img title="你是它" alt="二哈" src="https://ss3"> <!-- 图片标签: src:图片源 alt:资源加载失败的文本提示 title:鼠标悬浮的文本提示(所有标签都用这个属性) --> <!-- e.组合标签 --> <!-- 列表 --> <ul> <li>列表项</li> <!--ul>li{列表项}*3 实现快捷方式(实心圆点)--> <li>列表项</li> <li>列表项</li> </ul> <ol> <li>第1项</li> <!--ol>li{第$项}*3 实现快捷方式(数字排序,$也可以自动排序)--> <li>第2项</li> <li>第3项</li> </ol> <!--表格标签--> <!-- tr: 行 th: 标题单元格(列) td:内容单元格(列) border="1":表格最外一条线多少像素 width="500" height="300":表示整个表的高宽,表体会受到影响,而表头,表尾只影响宽度 cellpadding:单元格内部间距 cellspacing:单元格间的间距 --> <table border="1" width="500" height="300" cellpadding="10" cellspacing="0"> <thead> <!--表头--> <tr style="height: 50px"> <!--通过css抢占高度--> <th>标题</th> <th>标题</th> <th>标题</th> </tr> </thead> <tbody> <!--表体--> <tr> <td>单元格</td> <td>单元格</td> <td>单元格</td> </tr> <tr> <td colspan="2">单元格</td> <!--占2列--> <!--<td>单元格</td>--> <td rowspan="2">单元格</td> <!--占2行--> </tr> <tr> <td>单元格</td> <td>单元格</td> <!--<td>单元格</td>--> </tr> </tbody> <tfoot> <!--表尾--> <!--<tr>--> <!--<td>单元格</td>--> <!--<td>单元格</td>--> <!--<td>单元格</td>--> <!--</tr>--> </tfoot> </table> <!-- 表单标签: 完成前后台交互的 - 将前台用户输入的内容提交给后台 --> <form action="" method=""> <!-- form action:提交到后台的接口地址(url连接) method:提交方式 get:不安全,提交速度快 post:安全,提交数度慢 --> <input type="text" name="user" placeholder="文本占位符"> <!-- input:name有值才会往后台提交, name是键,value是值(可以手动规定也可以用户输入), placeholder:输入之前就有提示文字-->
<p>
<label for="aaa">信息</label>
<input type="text" id="aaa"> <!--输入框和‘信息’关联,当鼠标点信息这两个字时,就可以跳到输入框输入信息(通过for=,id= 关联同一个)-->
</p>
<input type="password"> <input type="number"> <!--选择数字功能--> <input type="file"> <!--电脑上打开窗口提交文件--> 男<input type="radio" name="sex" checked> <!--单选框--> 女<input type="radio" name="sex"> 一班<input type="radio" name="cless"> 二班<input type="radio" name="cless" checked> <!--name设置一个关联名,只能选一个,checked是默认选中--> 男<input type="checkbox" value="m" name="like" checked> <!--复选框--> 女<input type="checkbox" value="f" name="like" checked> <!--name设置一个关联名,可以多选,checked是默认选中--> 人妖<input type="checkbox" value="mf" name="like"> <select name="subject" multiple> <!--选择列表 multiple:可以多项操作--> <option value="chinese">语文</option> <option value="math">数学</option> <option value="python">python</option> </select> <textarea></textarea> <!--文本域--> <!--三个按钮--> <button type="button">按钮</button> <!--按钮,没有功能,后期可以自定义--> <button type="reset">重置</button> <!--重置当前页面--> <button type="submit"value="登陆">提交</button> <!--提交--value="登陆",显示登录按钮,目的是返回后台的是'登录'——> </form> <!--页面脚本--> <script></script> </body> </html>
单标签:
主功能,单标签后面无需内容,可以省略结束符/,如<br />
双标签:
主内容,需要有作用域,必须明确结束标签,如<a></a>
标签的嵌套规则(重点)
span:
无语义,同行显示(不带换行)
div:
无语义,换行显示(自带换行)
奥义:
相互独立,不受影响,追寻规律,化解耦合
</body>:
下方也可以写标签,因为有时候必须让该标签最后显示
W3C案例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>页面架构</title> <link rel="stylesheet" href="./css/4.样式.css"> </head> <body> <div class="site"> <!-- w3c整体框架 --> <div class="top"> <!-- w3c是最上端框架 --> <div> <!-- class起别名, .top 快速填写 --> <img src="" alt=""> <form action=""></form> </div> <ul> <li></li> ... <li></li> </ul> </div> <div class="mian"> <!-- w3c中间框架 --> <!--.left+.center+.right--> <div class="left"></div> <div class="center"> <div class="box1"> <h2></h2> <div> <p></p> <p></p> </div> <h3></h3> </div> </div> <div class="right"></div> </div> <div class="foot"></div> <!-- w3c底部框架 --> </div>
</body> </html>
<!DOCTYPE html> <html> <head> <!--内联式的优先级--> <meta charset="UTF-8"> <title>样式</title> <style> .dd { <!--.dd,本来使用div,但作用域太广,.dd刚好就避免了--> width: 200px; height: 200px; } .d1 { background-color: yellow; } .dd.d2 { background-color: red; <!--.dd.d1定位找,优先级高(名字多,优先级高)--> } .d2 { <!--如果.xx像这种名字一样长,又定位一样,谁在下方谁起作用--> background-color: brown; } </style> <link rel="stylesheet" href="./css/4.样式.css"> </head> <body> <!-- div标签的宽度会适应父级(body),高度由内容撑开 --> <div style=" 200px; height: 200px; background-color: pink;"></div> <!--1、行间式:使用直接,可读性差,但优先级比其他两个要高--> <div style=" 300px; height: 200px; background-color: greenyellow;">123</div> <!--设置div作用域的宽高、颜色--> <div class="dd d1"></div> <!--2、内联式:可读性增强,复用性(文件内部复用) ,通过head标签中的style标签来设置--> <div class="dd d2"></div> <!--class是起别名,而style中的.d1就代表class="d1"--> <div></div> <div class="pp p1"></div> <!--3、外联式(建一个css文件):团队开发,复用性(文本级别复用),一个样式装饰多个文件, 通过head标签中的link标签,中的 href="./css/4.样式.css"来设置外部css文件, ./代表当前文件夹内容,css/代表css文件夹下的内容--> <div class="pp p2"></div> <div></div> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>基础选择器</title> <style> /*优先级:当控制同一个事物时,一般按作用域大小区分,作用域越小优先级越高*/ /* !important > 行间式 > id > class > 标签 > 统配 */ /*重点: class选择器 - 单类名 多类名 */ * { /*1.统配选择器:全部匹配,包括head标签、body标签....的主体部分*/ font-size: 30px; color: brown; } div { /*2.标签选择器:标签名*/ color: orange; } span { color: darkcyan; } .aa { /*3.类选择器:.类名*/ color: indigo; } #bb { /*4.id选择器:#id名*/ color: green; } div#bb.aa { /*组合使用选择器:找id为bbclass为aa的div*/ color: red; } .aa { color: red!important; /* !important 宇宙最强(不建议使用,比如想还原行间式优先级, 行间式后面也加!important )*/ } </style> </head> <body> <div class="aa" id="bb" style="color: gold!important;">d1</div> <div class="aa">d2</div> <div>d3</div> <span class="aa">s1</span> <span>s2</span> <span>s3</span> </body> </html>