前端基础总结--CSS

前端

1.1前端方向

所谓前后端本身就是 Web 开发中,为了区分在服务器上运行的和在浏览器上运行的东西而出现的定义。

前端开发的体系划分,在我看来,就是两种,第一种就是ui实现的,不重业务逻辑,动态交互的。第二种就是各种业务逻辑,动态交互,数据处理的。这是很明显区分你要做什么任务,以及开发时的顺序的。

一般的我们说前端都是小前端,就是web端。

大前端一般是指web端,小程序端,移动端(Android,iOS),Windows端,macOS端,Linux端

1.2前端的技术

前端能做什么?

前端能做你上网看到的所有页面。哈哈。

优秀的程序员=兴趣+正确的方法+勤奋

Jquery:简化js操作

Bootstrap基于jQuery和css的框架,做响应式的网站(根据分辨率的变化而变化)非常方便,

框架则是提供一套解决方案,你得按我的规定来安排代码结构,它是随着前端功能的增强而产生的,对于往应用方向发展(也就是越来越像客户端)的web产品就很必要做前端架构这件事,它开始以模型为中心,DOM操作只是附加,通过关注点分离鼓励改进应用程序。

web标准的核心理念就是结构标准、样式标准和行为标准,提倡结构、表现和行为相分离,即HTML-结构、CSS-表现、JavaScript-行为 分离。

经常给自己的CSS等代码简化,相同的或者相似的两个并集选择器合在一起,不相同的再区分写出来

同步按你的代码顺序执行,

异步不按照代码顺序执行,异步的执行效果更高:

同步(Synchronization):任务顺序执行,在上一个任务未执行完成之前下一个任务等待执行。

异步(Asynchronous ): CUP暂时搁置当前任务,等到主线程任务执行完成,再来响应该任务。

1.3标签的内外边距

企业中要根据标签来判断写不写内外外边距,一般不用*{margin:0 ;padding:0;}*

为0,单位可要可不要

div没有内外边距,是默认浏览器给的。

1.4一些好用的快捷键

div*3再按tab可以生成三行div双标签

ul>li[class=‘hh’]{我是li标签}*10

按alt选中不同地方,可以写多行相同文字,

ctrl+d选中相同的,切换到下一个相同的

如果有父子级关系的标签,可以用>。例如ul>li就可以了

如果有兄弟关系的标签,用+就可以了。例如 div+p

如果生成带有类名或id名字的,直接写.demo或#two tab键就可以了,

.top+.banner+(.main>.left+.right+).footer按下tab会变

		<div class="top"></div>
		<div class="banner"></div>
		<div class="footer">
			<div class="main">
				<div class="left"></div>
				<div class="right"></div>
			</div>
		</div>

如果生成的div类名是有顺序的,可以用自增符号$,从1开始排序。

如果想要在生成的标签内部写内容可以用{}表示

input:submit会变

log 后按tab,会出现console.log。

例如w200,按下tab键就可以生成width: 200px;

例如lh26,按下tab键就可以生成line-height: 26px;

1.5一些好的代码


background-size:cover; box-sizing:border-box; font-size:0;**间距也是文字的一种**

style=“background: url(“images/index/15785568884650.jpg”) 0% 0% / 100% 100% no-repeat;”

setTimeout(func,1000);

setInterval(function(){clock()},1000);

background:url(images/2.jpg)no-repeat center/100% 100%;

setTimeout (‘test(参数)’,1000); //1秒后执行

注:如果不小心写成了setTimeout (test(参数),1000);test方法就会立即执行哦。

timer = setInterval(autoPlay, 1500);

clearInterval(timer);

background:url(images/1.png) no-repeat left center;//背景图片不平铺 左 居44444中对齐

border-radius:75px;//让border-radius值等于高度的一半

border-radius:50%;

border:1px solid #000;

margin:0 auto;//让盒子居中水平居中对齐,更简洁的代码margin:0;

margin:auto;//让盒子水平垂直居中的常用代码之一

display: table-cell;  /* 可以被vertical-align: middle限制*/ 
vertical-align: middle;      // 里面内容为居中对齐,写父盒子里

text-align:center;//文字水平居中

line-height:24px;//24px等于盒子的高度,让盒子内的文字垂直居中

overflow:hidden;

1.如何让文字垂直居中?
在一行内的盒子内,我们设定行高等于盒子的高度,就可以使文字垂直居中。(line-height:50px;)
2.如何去除a标签自带的下划线?
text-decoration: none; 取消下划线(取消文本装饰)

ul{list-style:none;}

border: 4px double #000000;//定义双线边框,两条线及其间隔宽等于指定的border-width值

backface-visbility:hidden;

     我们就给它的父级添上相对定位,和最小宽度,最小高度避免全部都皱成一团
     width: 100%;

​      min-width: 810px;

​      height: 100%;

​      min-height: 600px;

br和hr的区别:


标签在 HTML 页面中创建一条水平线。
可插入一个简单的换行符。

cursor:pointer;//鼠标变小手

firworks测量工具

1.6给网页标题加小图标(网站头像)

找网页图标可以去图标字体(如阿里图标库)上去找

通过查询资料,网络上有两种写法(写在head标签内):

语句一:<link rel="shortcut icon" href="图片地址(一般是favicon.ico)" />
其中favicon.ico需放在根目录下面(不提倡用这种方法,因为图片没有授权,违反了W3C标准,)
语句二:<link rel="icon" href="图片地址" type="image/gif" />

静态的图标文件使用:

标题栏:
<link rel="icon" href="ico地址" type="image/x-icon">
收藏夹:
<link rel="shortcut icon" href="ico地址" type="image/x-icon">

注意:图标要用 16*16 色的。。。(保证了兼容性,无论在哪个地方都可以显示,也可以是32*32)

动态图 gif(动画也是16*16)使用:

<link rel="icon" href="1.gif" type="image/gif" >

清除原格式

*{清除默认的内外边距,几乎是必写的。也叫CSS的初始化,这是最简单的,不推荐。
margin:0;//外边距
padding:0;//内边距
}
border-top要写在border后面,不然容易被覆盖

ul{

list-style:none;//取消列表的默认样式小点

}

text-decoration:none;

input{border:0;}//所有的表单边框为0

清除基线

1.设置块元素

2.设置字体大小为0

3.vertical-align:bottom;//低对齐

鼠标经过事件

第一种:主要用了onMouseOver和onMouseOut事件
html代码:

css代码:

img:hover{ cursor: pointer; }

1)、alt表示图片不能正常显示时的替换内容,里面可以加上文字,一般不写这个属性的话会有警告错误,所以我一般是会加上的。

2)、src="url()"表示图片的地址,此处的意思是images文件夹下的名字为1的jpg图片。

3)、onMouseOver 属性是鼠标指针移动到元素上时触发的。

4)、onMouseOut属性是鼠标指针移出元素是触发的。

此处的意思是 在鼠标移入时显示1.png,移出时显示1.jpg。

5)、img:hover 是鼠标经过img标签时显示的内容。

6)、cursor:pointer 表示鼠标经过是指针显示为小手形状。

注:这里是两张图片完全替换,鼠标移入时图片1.jpg完全不会显示。

第二种

.div_style:hover{
background-image: url(“img2.png”); //这是改变背景色
background-repeat: no-repeat;//这是让背景色不平铺
color:red; //这是让字体变为红色
}

1.7小总结

HTML

//可以设置语言

//H5支持自定义标签

ine-height是内容的垂直居中而不是元素的垂直居中,

元素的垂直居中可以利用内联元素设置vertical-align:middle来实现,在确定高度的情况下也可以通过设置margin或者padding来实现。

2.1文档类型(Doctype声明放在HTML前面)

<!doctype>用来声明html的版本,浏览器只有知道html的版本后才能正确显示文档,<!DOCTYPE>本身不是一个标签,而是一个声明。
html5的文档类型是:
文档类型设定
·document
HTML:sublime输入html:4s
XHTML:sublime输入html:xt
HTML5:sublime输入html:5

声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。

HTML 4.01 规定了三种不同的 <!DOCTYPE> 声明,分别是:Strict、Transitional 和 Frameset。 HTML5 中仅规定了一种。
DOCTYPE可声明三种 DTD 类型:严格、过渡以及框架集的 HTML 文档。

制作一个符合标准的网页,DOCTYPE声明是是不可缺少的,它在Web设计中用来说明你用的XHTML或者HTML是什么版本,

如果不做DOCTYPE声明或声明不正确的情况下,将有可能导致你的标识与CSS失效,从而令你网页的布局变乱,造成网页在浏览器中不能正常的显示。

当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式

  • 在标准模式中,浏览器以其支持的最高标准呈现页面;
  • 在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。

当浏览器开启了混杂模式的时候

影响css的情况

主要是IE浏览器,其他Chrome,FF以及IE高版本浏览器无论在什么模式下都能正常显示

  1. 盒模型是混杂模式和标准模式的主要区别
    <=IE6将盒子的padding和border算到盒子尺寸中,这被称为IE盒模型。
    W3C标准的盒模型中,box大小就是content大小。
    这一区别将导致页面绘制时所有块级元素都出现很大差别,所以两种不同的文档模式下的页面也区别很大。
  2. 影响图片元素的垂直对齐方式,就是在行框对基线的选择,IE的怪异模式会以Bottom-line为基线,标准模式下以base-line为基线。
  3. 影响table元素继承字体的某些属性,在IE5的怪异模式下不会继元素的一部分属性,尤其是font-size属性。
  4. IE5怪异模式中内联元素可以定义尺寸
  5. IE标准模式下,overflow取值为visible即溢出可见,在怪异模式下该溢出会被当作扩展box来对待,元素的大小由其内容决定,溢出不会被裁剪,而是父元素会自动调整自己的宽高以完全适应包含内容。

影响javascript的情况

跨浏览器确定一个窗口大小不是一件简单事,注意以下介绍的属性获取后的值都是整数而且没单位,即使是小数浏览器计算时也会四舍五入。

模式触发

浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。

  • 如果XHTML、HTML 4.01文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。
  • 包含过渡DTD和URL的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URL会导致页面以混杂模式呈现。
  • DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。

html5既然没有DTD,也就没有严格模式与宽松模式的区别,html5有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容

2.2字符集

由于不同的国家和地区使用不同的文字,就衍生出了很多不同的字符集和不同的字符编码方案。如:

  • 用于现代英语的ASCII字符集
  • 用于欧洲很多国家的iso8859系列字符集
  • 用于中国的GB2312,GBk,GB18030等字符集
  • 用于台湾,香港,澳门等的Big5字符集。
  • 用于日本的Shift JIS字符集
  • 用于越南的VISCII
  • 用于印度的ISCII
  • 包含全世界所有文字符号的Unicode字符集和其UTF-7,UTF-8,UTF-16等字符编码方案。

2.3BFC(独立渲染区域)

Formatting context(格式化上下文) 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。

那么 BFC 是什么呢?

BFC 即 Block Formatting Contexts (块级格式化上下文),它属于上述定位方案的普通流。

**具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。

**

通俗一点来讲,可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。

触发 BFC

只要元素满足下面任一条件即可触发 BFC 特性:

  • HTML 根元素
  • 浮动元素:float 除 none 以外的值
  • 绝对定位元素:position (absolute、fixed),不为static或则releative中的任何一个
  • display 为 inline-block、table-cells、flex
  • overflow 除了 visible 以外的值 (hidden、auto、scroll),
BFC 特性及应用

总结 BFC 的布局规则:

  1. 内部的 Box 会在垂直方向排列(块级元素)
  2. Box 垂直方向上的边距由margin决定,属于同一个 BFC 的两个相邻的 Box 的margin会发生重合
  3. 每个盒子的左边框紧挨着包含块的左边框,浮动元素也是如此
  4. BFC 的区域不会于 Float Box 重叠 BFC 就是页面上的一个隔离的独立容器,容器里面的子
  5. 元素不会影响到外面的元素,反之亦然
  6. 计算 BFC 的高度时,浮动子元素也参与计算

1. 同一个 BFC 下外边距会发生折叠

<head>
div{
    width: 100px;
    height: 100px;
    background: lightblue;
    margin: 100px;
}
</head>
<body>
    <div></div>
    <div></div>
</body>

img

从效果上看,因为两个 div 元素都处于同一个 BFC 容器下 (这里指 body 元素) 所以第一个 div 的下边距和第二个 div 的上边距发生了重叠,所以两个盒子之间距离只有 100px,而不是 200px。

首先这不是 CSS 的 bug,我们可以理解为一种规范,如果想要避免外边距的重叠,可以将其放在不同的 BFC 容器中。

<div class="container">
    <p></p>
</div>
<div class="container">
    <p></p>
</div>
.container {
    overflow: hidden;
}
p {
    width: 100px;
    height: 100px;
    background: lightblue;
    margin: 100px;
}

这时候,两个盒子边距就变成了 200px

img2. BFC 可以包含浮动的元素(清除浮动)

我们都知道,浮动的元素会脱离普通文档流,来看下下面一个例子

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值