HTML和CSS

HTML

基础讲解



要点:

  1. 标记语言不是编程语言
  2. .html和.htm都是html文档的后缀
  3. 标签有围堵和自闭两类
  4. 开始标签中可以定义属性,属性的值要用引号引起来

H5一般用于移动端的开发

文件标签

H5中新增了一个lang标签,放在<!DOCTTPE html>之后,用于表示页面目标群体所在的国家,我们一般这样写:

<html lang="ch">

meta标签用来指定字符集:<meta charset="UTF-8">

注意,html中的注释格式为:<!-- 内容 -->

图片标签

图片标签是自闭标签

<img src="图片的相对路径"/>

相对路径从html所在的文件夹开始,可以用.表示当前文件夹,".."代表上一层目录,"/"代表根目录。如果图片和html放置在同一个文件夹下,则相对路径可以写为./图片名,也可以写为当前文件夹名/图片名,当然,也可以什么都不写,此时默认就是./

img标签下的属性:





图片加载失败了,就显示alt中的文字信息

列表标签



链接标签

<a herf="点击后要跳转到的位置">要显示的文本内容</a>

属性:

target: _self:在本页面打开; _blank:在空白页面打开

mailto:邮箱名:点击之后会启动邮箱对其发邮件:



也可以为图片添加超链接(但这种方法其实不常用,更多时候是用Javascript实现的):

块标签

div和span,与CSS搭配使用。

span默认在一行中展示,是行内标签;而div会换行,是块级标签

题外话:


标签:

标签定义 HTML 页面中的主题变化(比如话题的转移),并显示为一条水平线。

语义化标签:H5新定义

在html4中,为了区分不同块的作用以及提高文档可读性,我们会在每一个div标签中定义一个id,而在H5中则直接提供了语义化标签:

<header>:头部

<footer>:尾部

这些标签同样是要结合CSS一起来使用的

表格标签

HTML中,表格只有行的概念,列要分别在行中定义单元格进行。输入的时候是一行一行输入



<table>:定义表格,border属性定义表格线,width表示表格宽度

注意,这里border对应的是“1”“2”等,这个1表示的是用几条线包围td\tr,所以如果这个值是1,两个单元格之间其实有两条线。如果要变成一条线,应该将cellspacing属性,也就是定义单元格之间空白的属性,设置为0.



<tr>:定义行

<td>:定义单元格

<th>:定义表头单元格

<caption>:定义表格标题



上面三个没有样式,而同样是为了与CSS搭配,同时增强阅读性

定义了三个部分之后,表格就会按thead-tbody-tfoot的顺序展示,和书写的顺序就无关了

合并单元格:

  1. 合并行

    colspan,值为几就合并从这里向下几个行,合并之后的算在第一行中

    例如:

  2. 合并列

    rowspan,值为几就合并从这里向右几个列,合并之后的算在第一列中

如果不使用CSS,table也可以用来做布局,由于网页的布局总是比较复杂的,并不好说有几列,所以多使用table的嵌套来完成,这样每一行就只有一个单元格了

实例:旅游网首页简版

<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<title>黑马旅游网</title>
</head>
<body>
<!--采用Table来完成布局-->
<!-- 最外层Table,用于整体布局-->
<table width="100%",align="center">
<tr>
<td>
<img src="./source/image/top_banner.jpg" width="100%" alt="">
</td>
</tr>
<tr>
<td>
<table width="100%" align="center">
<tr>
<td>
<img src="source/image/logo.jpg" alt="">
</td>
<td>
<img src="source/image/search.png" alt=">"
</td>
<td>
<img src="source/image/hotel_tel.png"alt="">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<table width="100%" align="center" cellspacing="0">
<tr bgcolor="orange" align="center" height="45" >
<td>
<a href="https://www.baidu.com">首页</a>
</td>
<td>
门票
</td>
<td>
酒店
</td>
<td>
香港车票
</td>
<td>
出境游
</td>
<td>
国内游
</td>
<td>
港澳游
</td>
<td>
抱团定制
</td>
<td>
全球自由行
</td>
<td>
收藏排行榜
</td>
</tr>
</table>
</tr>
<tr>
<!-- 轮播图-->
<td>
<img src="source/image/banner_3.jpg" width="100%">
</td>
</tr>
<tr>
<td>
<img src="source/image/icon_5.jpg">黑马精选<hr color="orange">
</td>
</tr>
<tr>
<td>
<table width="95%">
<tr>
<td>
<img src="source/image/jiangxuan_1.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
<!-- &yen是人民币符号的表示,其后必须加一个分号-->
</td>
<td>
<img src="source/image/jiangxuan_1.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
<!-- &yen是人民币符号的表示,其后必须加一个分号-->
</td>
<td>
<img src="source/image/jiangxuan_1.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
<!-- &yen是人民币符号的表示,其后必须加一个分号-->
</td>
<td>
<img src="source/image/jiangxuan_1.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
<!-- &yen是人民币符号的表示,其后必须加一个分号-->
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<img src="source/image/icon_6.jpg">国内游<hr color="orange">
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td rowspan="2" height="100%">
<img src="source/image/guonei_1.jpg">
</td>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
</tr>
<tr>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jingxuan_2.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<img src="source/image/icon_7.jpg">境外游<hr color="orange">
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td rowspan="2" height="100%">
<img src="source/image/jiangwai_1.jpg">
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
</tr>
<tr>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
<td>
<img src="source/image/jiangxuan_3.jpg">
<p>上海飞三亚,五天四晚自由行</p>
<font color="red">&yen;899</font>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<img src="source/image/footer_service.png" width="100%">
</tr>
<tr>
<td >
<table bgcolor="orange" align="center" width="100%">
<tr>
<td align="center">
<font color="gray" size="2" >
贾丁版权所有
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

表单标签

表单:用于采集用户输入的数据,用来和服务器进行交互

使用的标签:form,用于定义一个范围,表示采集用户数据的范围

表单项中的数据要想被提交,必须指定其name属性



#可以用来表示当前页面

get和post的区别:

  • input:可以通过修改type属性值,改变元素展示的样式

    Input常见元素类型:

    1. text:文本输入,是input项的默认值

    2. password:密码输入框,是密文显示的

    3. radio:单选框。要想让多个单选框实现单选的效果,则多个单选框name属性值必须一样,这样才能声明他们是归于同一组的

    为每一个单选框设置value属性作为提交时的值,注意,value和name是不一样的,不能混为一谈



    4. checkbox:复选框

    ? checked="checked"//默认被选中

    placeholder属性:给出输入框的提示信息

    题外话:label元素的作用。如果将输入框对应的文字放置在label中:

    1. file:文件选择框<input tyep="file" name='file'>
    2. hidden:隐藏域:不被显示,但是值可以被提交,以便于携带隐藏数据一并提交
    3. submit:提交按钮
    4. button:一个纯按钮,一般和JavaScript配合使用以实现动态效果
    5. 用image做按钮:src引用图片位置,input类型中就填image,这样就会把图片作为按钮了
    6. color:取色器,选中的颜色也会被提交
    7. data:年月日
    8. datatime-local:年月日+小时分钟
    9. email:会自动对输入的内容进行校验,必须符合邮箱格式
    10. number:自动校验输入内容是否为数字
  • select:下拉列表

    列表项要用option进行定义,当然我们也要给select加value



    一般第一项都会写“请选择之类的引导性的话,当然用户要是提交了这个也不行,所以要对它设计特定的值并在随后检验

    题外话:最后提交的表单项是一个key:value形式的,这里的key就是select的name(注意不是它的value,我们不会直接对select设置value的,那就没有选的意义了)

  • textarea:文本域

    多行的待输入区域

    常用属性:

    1. cols:列数
    2. rows:行数

CSS

CSS概述

CSS的优点:

  1. 功能强大
  2. 将内容的展示和样式的控制分离(解耦):降低耦合度以便于分工协作、提高开发效率以及CSS的重用性(因为不需要和具体HTML内容绑定了,可以套在不同HTML上)

CSS与HTML结合

  1. 内联样式:在标签内使用style属性指定css代码



    不推荐使用,没有实现解耦的效果,并且只对当前元素生效

  2. 内部样式:在head标签内定义style标签,其的标签体内容就是css代码

    作用域更大了,可以作用域整个HTML页面

  3. 外部样式:在外部的CSS文件中写CSS代码

    1. 定义CSS资源文件
    2. 在head标签内,定义link标签,引入外部资源文件

    这种方式下,CSS文件的作用域可以拓展到整个项目



? 也可以写为:

CSS基础语法

CSS格式



选择器:筛选具有相似特征的元素。例如如果我们写div,那么所有的div都会被控制

CSS的注释:

/*
注释内容
*/

注意,每一对属性都要用分号隔开,最后一个可以不加

如果CSS格式有问题,则不会生效

CSS选择器

  1. 基础选择器

    1. id选择器:选择具体id属性值的元素

      语法:#id属性值{内容}

      注意,对于div和p,我们也能给他们赋id

      建议在一个html中选择唯一id

    2. 元素选择器:选择有相同标签名称的元素

      如果一个元素被多个同级别的css控制且控制的类型相同,则后面的会覆盖前面的

      id选择器的优先级高于元素选择器

    3. 类选择器:选择具有相同的class属性值的元素

      语法:.class属性值{}//注意前面那个.

      在元素内部可以定义类:

      类选择器的优先级也高于元素选择器

  2. 拓展选择器

    1. *{}:选择所有元素

    2. 并集选择器,语法为 ;选择器1,选择器2{}。

    3. 子选择器,语法为“选择器1 选择器2{}“:筛选选择器1元素下的选择器2元素



      例如像这样,操作div下的p

    4. 父选择器,语法为“选择器1>选择器2{}":筛选选择器2的父元素选择器1



      操作的是p标签的父类div标签

    5. 属性选择器,语法为"元素名称[属性名=“属性值]{}",一般用于input元素下的选择(因为input元素下的种类太多了,需要通过指定属性名来指定元素)

    6. 伪类选择器,选择一些元素具有的状态,语法为:“元素:状态{}”,一个典型的使用是用来控制超链接:

CSS属性

  1. 字体、文本

    1. font-size:字体大小
    2. color:文本颜色
    3. text-align:对齐方式
    4. line-height:行高
  2. 背景

    background:背景,可以使用图片

    background: url("image/test.png")no-repeat center;
  3. 边框

    1. border:设置边框,是一个复合属性。

      四条线组成一个边框,每一条线都可以单独设置,如果泛指border那就是指四个一起。

      多个属性值用空格隔开就好了

  4. 尺寸

    1. width:宽度
    2. height:高度
  5. 盒子模型

    把元素当成盒子来看待,主要用来控制布局

    • mergin:外边距
    • padding:内边距



    每一个方向上的内外边距其实都是可以单独设置的

    内外边距都是相对的,它取决于当前我们所研究的元素是哪个。



    举个例子:

注意,修改内边距会改变盒子大小。解决方案:设置盒子属性box-sizing为border-box,让width和height就是最终盒子的大小。

  • 浮动:float

    left/right:左浮动、右浮动

    最最最最最简单的理解是,浮动可以实现元素排列在一行

    关于浮动,这里有更加详细的介绍:https://www.jianshu.com/p/07eb19957991

HTML和CSS学习的更多相关文章

  1. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  2. css学习归纳总结(三) 转

    原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...

  3. css学习归纳总结(二) 转

    原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...

  4. css学习归纳总结(一) 转

    原文地址:CSS学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00; } 3.属性 ...

  5. 【2016年特别福利】史上最全CSS学习资料大全

    css学习篇 [2016年特别福利]史上最全CSS学习资料大全

  6. 【转】css学习专题-BFC

    css学习专题-BFC 转自:原文链接:css学习专题-BFC文章目录 BFC:Block Formatting Context. BFC就是一种布局方式,在这种布局方式下,盒子们自所在的 conta ...

  7. css学习归纳总结

    来源于:trigkit4 css学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00 ...

  8. html+css学习总结

    HTML与css学习总结 一:html概念 1. html是一种描述网页的语言,并不是计算机语言这要分清楚:标记语言是运用一套标记标签描述网页的: 注意点: ①标签字母都要小写,标签一般都是成对出现, ...

  9. HTML+CSS学习笔记 (7) - CSS样式基本知识

    HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...

  10. HTML+CSS学习笔记 (6) - 开始学习CSS

    HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...

随机推荐

  1. [论文理解] Acquisition of Localization Confidence for Accurate Object Detection

    Acquisition of Localization Confidence for Accurate Object Detection Intro 目标检测领域的问题有很多,本文的作者捕捉到了这样一 ...

  2. 改变HTML样式

    HTML DOM 允许 JavaScript 改变 HTML 元素的样式.如何改变 HTML 元素的样式呢? 语法: Object.style.property=new style; 注意:Objec ...

  3. LC 967. Numbers With Same Consecutive Differences

    Return all non-negative integers of length N such that the absolute difference between every two con ...

  4. Mysql-将一张表中的数据批量导入另一张表中

    由于mysql不支持select into 方法,mysql怎样将一张表的查询结果存到另一张表中? 找了两个方法 第一种: create table dust select * from studen ...

  5. 小D课堂 - 新版本微服务springcloud+Docker教程_3-02CAP理论知识

    笔记 2.分布式应用知识CAP理论知识     简介:讲解分布式核心知识CAP理论 CAP定理:             指的是在一个分布式系统中,Consistency(一致性). Availabi ...

  6. free()后内存不释放问题 - 内存缓冲池技术(转)

    起因 下面这段代码执行后,内存有增无减,增加了200M,iOS平台200M不能接受了 // STL 集合类 void test1() { list<int> mList; for (int ...

  7. 七十九:flask.Restful之flask-Restful标准化返回参数示例

    接上一篇的代码和数据 对于复杂结构的数据如果只是定义单一结构的话返回的数据就没意义了,此时定义的数据结构需精确到所有数据的每一个字段有时候要返回的数据结构中,会有比较复杂的数据结构,证实后可以使用一些 ...

  8. maven中GroupID 和ArtifactID

    artifactId :unique base name of the primary artifact being generated by this project GroupID 是项目组织唯一 ...

  9. iOS10权限问题

    下图就是Info.plist的常用的权限问题: * 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? * 相机权限: Priv ...

  10. JavaScript(2):函数

    <!DOCTYPE html> <html> <body> <p>JavaScript 函数</p> <script> // 函 ...