HTML&CSS学习笔记
开发前的准备
- 环境搭建:推荐IDEA
- 常见问题解决
- 寻求问题根源
- 查看参考文档
- 参考示例
- 搜素引擎
- 问题反馈
- 掌握技能需求
- HTML5
- XHTML
- CSS3
- JS
- jQuery
- 快捷键(在IDEA下使用eclipse for mac os x (在keymap设置))
- 快捷提示:alt+/
- 快捷注释:command+/
- 代码上移下移:alt+up/down
- 快速复制:Alt+command+下:快速向下复制
- 删除一行:command+d
HTML5
标记语言
集成开发环境IDEA
- 创建工程:crate new—>Static Web—>Static Web—>next
- 名称:Hello 目录:XXX/Hello
- 运行:鼠标移到右上角,选择浏览器,即可运行
基础讲解
- !DOCTYPE html:版本声明。浏览器必须知道你所使用的确切的HTML的版本才能正确显示,这条语句是HTML5的声明,其他较复杂
- head:定义编码格式、标题、文字显示语言等等
- body:页面主要内容以及其他标签
|
|
HTML5的样式、链接、和表格
- 三种样式表的插入方法
- 外部样式表
- 内部样式表
- 内链样式表
- 链接
- 文本链接
- 图片链接
|
|
- name表示文档内链接,比如论文中点击上标就会跳转到文档最后的尾注参考文献(例如百度百科)
HTML5列表、块、布局
- 列表
HTML表单提交和php环境搭建
表单:用于获取不同类型的用户的输入
- 复选框
- 单选按钮
- 下拉列表
- 文本域
- 创建按钮
PHP环境搭建
HTML5框架、背景和实体
- 框架
- 框架标签
- 内联框架
(好玩,就是网页嵌套别的网页)
背景
- background
- bgcolor
实体
- HTML中预留字符串必须被替换成字符实体
- < 、&等等符号是预留符号
- 用的时候搜索即可
XHTML的使用规范
- 什么是XHTML
是可扩展超文本标记语言 - 为什么使用XHTML
为了代码的完整性和良好性 - 文档声明
DTD:规定了使用通用标记语言的网页语法- 严格类型
- 过度类型
- 框架类型
- 语法
- 元素必须正确嵌套
- 元素必须始终关闭
- 元素必须小写
- 文档必须有一个根元素
- XHTML属性
- 属性必须小写
- 属性必须用引号包围
- 属性最小化也是禁止的
CSS样式
- css 样式由选择符和声明组成,而声明又由属性和值组成
- 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响。
- 声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔
CSS样式的分类
内联式
|
|
嵌入式
|
|
外部式
外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在
内(不是在代码的前面(实际开发中也是这么写的)。感兴趣的小伙伴可以试一下,把它们调换顺序,则会变化CSS选择器
什么是选择器
每一条css样式声明(定义)由两部分组成,形式如下:
选择器{
样式;
}
在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。比如右侧代码编辑器中第7行代码中的“body”就是选择器。
选择器的分类
- 标签选择器
|
|
- 类选择器(最常用)
|
|
- ID选择器(类似类选择器)
|
|
- 类选择器和id选择器的区别
- ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。 - 可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)。
- 子选择器
即大于符号(>),用于选择指定标签元素的第一代子元素。
|
|
- 包含(后代)选择器
包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码:
.first span{color:red;}
>作用于元素的第一代后代,空格作用于元素的所有后代。
通用选择器
通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素,如下使用下面代码使用html中任意标签元素字体颜色全部设置为红色:
{color:red;}
伪类选择器(一般用于a标签)
更有趣的是伪类选择符,为什么叫做伪类选择符,它允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:
a:hover{color:red;}
分组选择符
当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符
h1,span{color:red;}
CSS的继承
CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为span标签。
p{color:red;}
<p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
- 权值
- 标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100
|
|
**继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。**
层叠
层叠就是在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用。
所以前面的css样式优先级就不难理解了:内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。
- 最高权值
我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。
|
|
1. !important要写在分号的前面
2. 这里注意当网页制作者不设置css样式时,浏览器会按照自己的一套样式来显示网页。并且用户也可以在浏览器中设置自己习惯的样式,比如有的用户习惯把字号设置为大一些,使其查看网页的文本更加清楚。这时注意样式优先级为:浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。
文字排版
- 字体
body{font-family:”Microsoft Yahei”;} - 字号颜色
body{font-size:12px;color:#666} - 粗体
p span{font-weight:bold;} - 斜体
p a{font-style:italic;} - 下划线
p a{text-decoration:underline;} - 删除线
.oldPrice{text-decoration:line-through;} - 段落缩进
p{text-indent:2em;} - 行间距
p{line-height:1.5em;} - 字间距、字母间距
- 文字间距、字母间距
h1{
letter-spacing:50px;
} - 英文单词间距
h1{
word-spacing:50px;
}
- 文字间距、字母间距
- 对齐方式
- 居中
h1{
text-align:center;
} - 居左
h1{
text-align:left;
}
- 居中
CSS盒模型
元素分类
- 块状元素
|
|
设置display:block就是将元素显示为块级元素
a{display:block;}
1. 每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
2. 元素的高度、宽度、行高以及顶和底边距都可设置。
3. 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
- 内联元素
|
|
当然块状元素也可以通过代码display:inline将元素设置为内联元素
- 和其他元素都在一行上;
- 元素的高度、宽度、行高及顶部和底部边距不可设置;
- 元素的宽度就是它包含的文字或图片的宽度,不可改变。
内联元素之间有一个间距问题
- 内联块状元素
|
|
display:inline-block就是将元素设置为内联块状元素
- 和其他元素都在一行上;
- 元素的高度、宽度、行高以及顶和底边距都可设置
- 什么是盒模型
- 就像是月饼盒与月饼的关系
- 拥有内边距:padding 外边距margin属性
- 块状元素都具有盒子模型的特点
- 属性
- 边框
div{
border-width:2px;
border-style:solid;
border-color:red;
}
border-top:1px solid red; - 宽度和高度
div{
width:200px;
padding:20px;
border:1px solid red;
margin:10px;
} - 填充
div{
padding-top:20px;
padding-right:10px;
padding-bottom:15px;
padding-left:30px;
} - 边界
div{margin:20px 10px 15px 30px;}
- 边框
padding和margin的区别,padding在边框里,margin在边框外。
CSS布局模型
布局模型与盒模型一样都是 CSS 最基本、 最核心的概念。 但布局模型是建立在盒模型基础之上,又不同于我们常说的 CSS 布局样式或 CSS 布局模板。如果说布局模型是本,那么 CSS 布局模板就是末了,是外在的表现形式。
分类
- 流动模型
- 流动(Flow)是默认的网页布局模式
- 块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。
- 实际上,块状元素都会以行的形式占据位置
- 在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。
- 浮动模型
- 如果现在我们想让两个块状元素并排显示就设置元素浮动、
- float:left;
层模型
- 类似于PS中的图层精确定位
绝对定位
如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。
如下面代码可以实现div元素相对于浏览器窗口向右移动100px,向下移动50px。
|
|
- 相对定位
- 如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。
- 如下代码实现相对于以前位置向下移动50px,向右移动100px;
|
|
- 固定定位
- fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。 - 以下代码可以实现相对于浏览器视图向右移动100px,向下移动50px。并且拖动滚动条时位置固定不变。
|
|
- 组合使用:相对于其他元素定位
- 使用position:relative来帮忙,但是必须遵守下面规范 1. 参照定位的元素必须是相对定位元素的前辈元素: 2. 参照定位的元素必须加入position:relative; 3. 定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
CSS代码缩写
盒模型代码简写
还记得在讲盒模型时外边距(margin)、内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左。具体应用在margin和padding的例子如下:margin:10px 15px 12px 14px;/上设置为10px、右设置为15px、下设置为12px、左设置为14px/
- 如果top、right、bottom、left的值相同
margin:10px; - 如果top和bottom值相同、left和 right的值相同
margin:10px 20px; - 如果left和right的值相同
margin:10px 20px 30px;
padding、border的缩写方法和margin是一致的
- 如果top、right、bottom、left的值相同
颜色值缩写
关于颜色的css样式也是可以缩写的,当你设置的颜色是16进制的色彩值时,如果每两位的值相同,可以缩写一半。- p{color:#000000;}
缩写为:p{color: #000;} - p{color: #336699;}
缩写为:p{color: #369;}
- p{color:#000000;}
字体缩写
body{
font-style:italic;
font-variant:small-caps;
font-weight:bold;
font-size:12px;
line-height:1.5em;
font-family:”宋体”,sans-serif;
}
缩写为:body{
font:italic small-caps bold 12px/1.5em “宋体”,sans-serif;
}
使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-varient、line-height)如未指定将自动使用默认值。
在缩写时 font-size 与 line-height 中间要加入“/”斜扛。