基础教程HTML+CSS+JS

HTML基础

HTML:(Hyper text markup language)超文本标记语言

Html结构标准
<!doctype html>         声明文档类型
<html>                  根标签
  <head>                头标签
    <title></title>     标题标签
  </head>
  <body>                主题标签
  </body>
</html>

注:网页文件后缀名html和htm两种类型是一样的。htm是因为之前电脑不支持四个字符的后缀名。后缀名不能决定文件格式,只能决定打开文件打开的方式。

Html标签分类

单标签 <!doctype html>
双标签 <html></html> <head></head>

Html标签关系分类

包含(嵌套关系) <head><title></title></head> 父子
并列关系 <head></head><body></body> 兄弟姐妹

Html标签

单标签:换行标签 <br> , 水平线标签<hr>
双标签:段落标签<p></p> , 标题标签<h1></h1>(h1到h6标题大小依次减小,h1在一个页面里只能出现一次) ,加粗标签<strong></strong>(常用)或者<b></b>,倾斜标签 <em></em>(常用)或者<i></i> ,删除线标签<del><del>(常用)或者<s></s>,下划线标签<ins></ins>(常用)或者<u></u>
注:这里相同的标签选择常用的原因是因为这些标签更有语义化,可读性更强。
图片标签![](图片路径)

路径
1.相对路径:

同级目录:直接写文件名
下级目录:文件夹/文件名
上级目录:../文件名

2.绝对路径:

直接写出文件的全部路径,电脑上的绝对路径或者互联网的绝对路径。 例:C:/Desktop/images/xxx.png

超链接<a href ="跳转的目标位置" titlte="鼠标放上时显示的提示文本" target="打开一个新页面的方式">我是一个超连接</a>
注:默认是在当前的窗口覆盖新的页面,如果设置target的值为_blank时将会在新的窗口打开新的页面。
锚点:设置一个锚点,利用a标签可以回到锚点的位置。锚点设置即给目标标签设置id属性,将a标签的href值等于id属性的值(前面加上#)。
空链接:<a href = "#">这是一个空链接</a>
压缩包下载:<a href = "压缩包路径"></a>工作不推荐使用
超链接优化写法:在<head>标签中声明<base target="_blank">指明所有的超链接都自动打开新窗口。

特殊字符:空格: ,<:&lt,>:&gt等等。
列表标签
1.无序列表<ul><li></li></ul>
2.有序标签<ol><li></li></ol>
3.自定义列表<dl><dt></dt><dd></dd></dl>

不常用标签:

音乐标签<embed src="文件路径">
滚动标签<marquee></marquee>

meta和link标签
<meta charset="utf-8">Charset 编码 常用UTF-8通用字符集
<meta name="keyword" content = "关键字眼">在content中填写关键字给SEO(搜索引擎)来检查。
<meta name="description" content="描述内容">网页描述内容给SEO看的,会显示在搜索到的网页下方。
<meta http-equiv="refresh" content="5;http://www.baidu.com">网页重定向。网页打开后5秒后会跳转到百度首页。
<link rel="stylesheet" href="css文件路径">链接到css外部样式表
<link rel="icon" href="文件路径">设置网站的小图标

表格标签

一般结构
<table>
        <tr>        //行
            <td>张三</td>     //单元格
            <td>18</td>
            <td>挖掘机</td>
        </tr>
        <tr>
            <td>马六</td>
            <td>20</td>
            <td>大前端</td>
        </tr>
</table>
标准结构
<table>          //表格
        <thead>      //头部
            <tr>             //行
                <td></td>    //列
                <td></td>
                <td></td>
            </tr>
        </thead>
        <tbody>     //主体
            <tr>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </tbody>
        <tfoot>     //底部
            <tr>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </tfoot>
    </table>

属性设置
colspan="2"同一行向后合并。两个单元格合并
rowspan="2"同一列向下合并。两列单元格合并
表格标题:<tr><th></th></tr>用法跟td一样

表单标签:<form><input></form>
作用:收集信息。
<form action="2.php" method=""></form>
action:信息提交的目标位置,信息处理。
method:get/post。信息提交的方法。
文本输入框:<input type="text" maxlength="限制的字符长度" readonly ="只读状态" disable="未激活" name="输入框标识" value="默认值">
密码输入框:type="password"
单选框:type="radio" checked="checked(设置默认选中)"
注:将单选框的name属性设置为相同时才可以实现单选效果

下拉列表:<select><option>下拉列表选项</option></select>
<option selected="selected设置默认选中"></option>
<select multiple="multiple设置为多选项下拉列表"><select>

多选框:<input type="checkbox" checked="checked默认选中">
多行文本框:<textarea cols="列数,字符长度" rows="行数"><textarea>
文件上传控件:<input type="file">
提交:<input type="submit">
普通按钮:<input type="button">没有提交功能
图片按钮:<input type="image" src="图片路径">可以实现提交功能
重置按钮:<input type="reset">把信息恢复到默认状态
表单信息分组<fieldset><legend>分组名称</legend></fieldset>
H5表单补充:
<input type="url">网址输入框;<input type="date">日期;<input type="time">时间;<input type="email">邮件;<input type="number">数字;<input type="range">滑块。

标签语义化
根据内容的结构化,选择合适的标签。

CSS基础

CSS:(Cascading Style Sheets)层叠样式表.主要用来美化html标签的,相当于给页面化妆。
格式:选择器{属性:值}
选择器:选择哪个标签的过程。定位到哪种标签。

选择器
1.基础选择器
标签选择器:标签{属性:值} 例:p{font-size:14px}所有的p标签的文字大小为14
类选择器:.类名{属性:值} 类名是给标签设置的class属性值
ID选择器:#ID名{属性:值}id名是给标签设置的id属性值。
通配符:*{属性:值}

2.符合选择器
后代选择器:选择器1+空格+选择器2{属性:值}
交集选择器:选择器1+选择器2{属性:值}
并集选择器:选择器1+,+选择器2{属性:值}
子代选择器:选择器1+>+选择器2{属性:值}

文本属性连写
font-size:16px:文字大小
font-weight:300:文字粗细
font-family:宋体:文字字体
font-style:normal:文字类型

连写:font:normal 300 16px 宋体按照顺序来写,文字大小跟字体必须写。

三种样式表
1、内部样式表:写在head标签内<style>{选择器{属性:值}}</style>
2、外部样式表:写在单独的.css文件内。用link标签链接<link rel="stylesheet href="xxx.css"">
3、内联样式表:写在单独标签内。很少使用,优先级最高。

元素类型
块级元素:独占一行。嵌套下,子会元素宽度(没有定义情况下)和父块元素宽度默认一致。
行内元素:a,span,em,strong等标签。都在一行上显示,不能直接定义宽高。
行内块级元素:input,img等标签。可以设置宽高,在一行上显示。

样式选择原则
1、代码往下执行,具有层叠性。
2、继承性。h标签不能继承文字大小,a标签不能继承颜色属性。

优先级
标签选择器1(权重值)<类选择器10<ID选择器100<行内样式1000<!important1000以上
继承的权重为0。
权重可以叠加,权重值越高优先级越高。

链接伪类
a:link{属性:值}在超链接的情况下与a{属性:值}一样,默认状态。
a:visited,链接访问之后的状态
a:hover,鼠标放在链接上的状态
a:active,链接激活时的状态,鼠标按下时。
:focus,获取焦点。
注意:如果四个链接伪类都使用时,一定要按顺序书写不然出现问题。

行高

浏览器默认文字大小为16px。

行高是基线与基线之间的距离。行高=文字大小+上下边距,当行高跟元素的高度相同时,文字会居中显示。

行高的单位:
像素:px
百分比:%
比例:em 文字大小的倍数
不带单位:2
单位除了像素以外,行高都是与文字大小的乘积。
父子元素都设置文字大小时:不带单位时,行高是跟子元素文字大小相乘,其他都是与父元素的文字大小相乘。行高以像素为单位,就是定义的行高值,推荐使用像素作为行高的单位

盒子模型
边框:border
边框合并:border-collapse:collapse;
内边距:padding 会增加盒子的值
外边距:margin
盒子=内容大小+内边距+边框
子盒子会继承父盒子的宽度,高度不会,未设置就是0。继承的盒子设置内边距不会被撑大(未超过设置的宽度时)。
注:垂直方向两个盒子都设置了外边距,浏览器会取最大值作为两个盒子的间距。
外边距塌陷:嵌套的盒子,直接给子盒子设置垂直方向外边距时,会出现塌陷(两个盒子同时往下移动。) 解决方法:1、给父盒子设置边框 2、给父盒子设置overflow:hidden。(推荐使用)bfc:格式化上下文。
补充:获取表单焦点:label标签将for属性设置为input的id值。

浮动原理

三大布局
1、文档流(标准了):元素从左到右,自上而下,块元素独占一行,行内元素在一行上显示,碰到父级元素边框换行
2、浮动:float:left || right
3、定位:position:

特点:元素使用浮动后,不占据原来的位置(脱离标准流);浮动的盒子在同一行显示;行内元素浮动之后转换为行内块元素(不推荐使用,因为元素脱标了);

浮动作用:文本绕图;制作导航;网页布局;
清除浮动:
当父盒子没有定义高度,嵌套的盒子浮动之后,下边的元素位置发生错误。
清除浮动不是不用浮动,是清楚浮动产生的不利影响。
方法:1、额外标签法:在最后一个浮动元素后添加标签设置属性clear:left || right || both(工作用的最多) 增加标签影响浏览器加载,很少使用。
2、给父级元素使用overflow:hidden 原理:bfc 格式化上下文。
注:如果有内容在盒子外面就不能使用这个方法。
3、伪元素:推荐使用。给父标签添加类属性.clearfix:after{ content:"";display:block;height:0;line-height:0;visibility:hidden;clear:both}兼容IE浏览器添加属性.clearfix{zoom:1}

CSS初始化
各大浏览器间兼容性不同,为使各大浏览器样式一致,故需要做一些初始化。例

body,ul,ol,li,p,h1,h2,h3,form,table,td,img,div,dl,dt,dd,input,span{
    margin: 0;
    padding: 0;
}
body{
    font-size: 12px;
}
img{border: none;
}
li{
    list-style: none;
}
input,select,textarea{
    outline: none;
}
textarea{
    resize: none;
}
a{
    text-decoration: none;
}
/*清除浮动*/
.clearfix:after{
    content: "";
    display: block;
    clear: both;
}
.clearfix{
    zoom: 1;
}

overflow
溢出。内容超出盒子范围。
overflow:visible默认值,正常显示不会修剪,元素显示在盒子之外。
overflow:hidden超出部分被修剪。
overflow:scroll显示滚动条。超出部分被藏起来,通过滚动条查看。
overflow:auto如果有内容超出会显示滚动条,没有则是正常显示。

定位
定位方向:left:、 right:、 top:、 bottom:
position:static静态定位:相当于标准流,默认值。
position:relative相对定位:相对于自己出发;不脱标,还占据原来的位置;子绝父相(父元素相对定位,子元素相对定位);行内元素使用后不能转行内块。
position:absolute绝对定位:脱标,不占据原来位置;相对于浏览器出发;嵌套盒子,父盒子没有使用定位,子盒子还是从浏览器出发;嵌套盒子,父盒子使用定位,子盒子从父盒子出发;行内元素使用后会变成行内块元素。
position:fixed固定定位:脱标,不占据原来位置;相对于浏览器出发;行内元素使用后会变成行内块元素。
补充:z-index:0~99改变元素的层叠顺序,值越大,元素就越在上。

定位的盒子居中显示:left:50% margin-left:-width*0.5 先走父盒子的一半位置,然后再往回走本身的一半。

规避脱标流
margin-left:auto盒子冲到右边;
margin-right:auto盒子冲到左边;
margin:0 auto盒子居中;
尽量使用标准流,标准流不能实现的用浮动,浮动实现不了的用定位。

图片和文字垂直居中对齐
vertical-align:baseline默认基线对齐。对inline-block最敏感。
vertical-align:middle中对齐
vertical-align:top上对齐
vertical-align:bottom下对齐

css可见性
overflow:hidden溢出隐藏
visibility:hidden隐藏元素
display:none隐藏元素
display:block元素可见
第二个跟第三个的区别:第二个元素隐藏,位置还在;第三个元素隐藏,位置消失。

内容移除
使用text-indent:-5000px,如果是行内标签要转成行内块标签。

css精灵图

css精灵是一种处理网页背景图像的方式。将很多小图像合成到一张大图上。精确度某个小图像,使用background-position等样式选择。

补充:
属性选择器
写法:标签[属性:值]后面可以跟多个属性。

JS基础

js是一款运行在客户端的网页编程语言。
组成部分:
ecmascript:js标准
dom:通过js操作网页元素
bom:通过api操作浏览器
特点:
简单易用;解释执行(逐行执行);基于对象;
补充:编译执行:java等语言都是需要编译成.dll电脑可执行文件才能运行,与解释执行对应。
JavaScript:实现网页与客户之间的互动的桥梁,让网页具有丰富的生命力;

书写位置
内嵌: <script type="text/javascript">内容代码</script>
外链:<script src="js文件路径位置"></script>
js的位置没有固定要求,但是一般写在网页加载完成之后再让js代码执行。即我们可以写在body标签最后。
注:写js代码的时候分号不要省略。

输出信息的5种方法
alert(): 页面弹出对话框,早起js调试使用;
console.log(): 控制台输出;
confirm(): 页面弹出对话框,多一个取消按钮选项;
prompt(): 页面弹出对话框,多了一个输入框,接收用户输入信息;
docment.write(): 在页面上显示信息;
\"":\转义字符,代表一个双引号。
\n:代表换行
\r:代表回车

变量

会变化的量,存储数据的容器。
常量:let
变量:var

数据类型
数字型:number
字符型:string
布尔型:boolean
未初始化:undefined 内存在存在
空:null 内存中不存在
判断数据类型:typeof()

比较运算符
> < >= <= != == ===
注:==是判断内容值是否相等 ===另外还判断类型是否相等

算术运算符
+ - * / % += -= *= /= ++ --
注:数字跟字符串相加结果是一个字符串。数字跟数字字符串相减得到一个数字类型。一个数字类型跟非数字字符串相减得到NaN。相除的时候除数为0时得到Infinity
NaN(not are number)数字类型,代表不是一个数字。
Infinity:数字类型,代表无限大。

Date对象和Math方法

var myDate = new Date();//通过new方法创建对象
alert(Date());//返回完整的日期时间
alert(myDate.getDay());//返回周几
alert(myDate.getMonth()+1);//返回月份
alert(myDate.getFullYear());//返回年份

Math方法

Math.ceil();//向上舍入取整
Math.floor();//向下舍入取整
Math.max(x,y);//最大值
Math.min(x,y);//最小值
Math.random();//返回0到1之间的随机数
Math.pow(x,y);//返回x的y次方
Math.round();//四舍五入

数据类型转换
数字转字符串:String() .toString
字符串转数字:Number() parseInt() parseFloat()
转布尔类型:Boolean()
注:0 null undefined转布尔为false。

逻辑运算符
与&& 或|| 非!
与的优先级高于或。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,703评论 1 92
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,793评论 0 6
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 3,208评论 1 41
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,599评论 0 30
  • 那扇窗户是我无数次想要跳下去的窗户,曾经严重失眠到几乎每天都睡不着的时候我都紧紧盯着那扇窗户,甚至需要晚上在上面坐...
    元明清音阅读 213评论 0 1