CSS总结
CSS引入方式
CSS选择器
CSS常用属性总结
CSS优先级
CSS页面布局
Flex布局
Grid布局
Table布局
布局垂直居中
响应式布局
box-sizing属性
CSS引入方式
行内引入:
我是一个块级的标签
嵌入式:将CSS样式表放到head中用
...
导入式: 将一个独立的.css文件引入HTML文件中,导入式使用@import 引入外部CSS文件,
...
链接式引入:将一个独立的.css文件引入到HTML文件中,使用标记写在标记中。 链接式会以网页文件主体装载前装载CSS文件。
...
样式的应用顺序:
行内样式优先级最高
针对相同的样式属性,不同的样式属性将以合并的方式呈现
相同样式并且相同属性,呈现方式在
中的顺序决定,后面会覆盖前面属性
!important 指定样式规则应用最优先
CSS选择器
基本选择器:
1、通用元素选择器:
表示应用到所有的标签 。*{margin:0;padding:0;}
2、标签选择器
匹配所有使用 div 标签的元素(可以匹配所有标签)div {color: yellow}
3、类选择器
匹配所有class属性中包含info的元素。
语法:.类名{样式}(类名不能以数字开头,类名要区分大小写。)
.yanse{color:yellow}
我的div
4、id选择器
使用id属性来调用样式,在一个网页中id的值都是唯一的(是W3C规范而不是规则,所以不会报错)。
语法:#ID名{样式}(ID名不能以数字开头
#Mycolor {color: yellow}
H3
组合选择器:
1、多元素组合选择器
同时匹配两个或多个标签,用逗号隔开
p,a,div{color: yellow;}
段落
link
kuai
2、后代元素选择器
匹配所有div标签里嵌套的P标签,之间用空格分隔。
div p {color: yellow;}
3、子代元素选择器
匹配所有div标签里嵌套的子P标签,之间用 >分隔。
div > p {color: yellow;}
4、兄弟元素选择器
匹配所有紧随div标签之后的同级标签P,之间用+分隔(只能匹配一个)。
div + p {color: yellow;}
div
ppp
伪类选择器:
link、hover、active、visited
a:link(未访问的链接状态),用于定义了常规的链接状态。
a:hover(鼠标放在链接上的状态),用于产生视觉效果。
a:active(在链接上按下鼠标时的状态)。
a:visited(已访问过的链接状态),可以看出已经访问过的链接。
before、after
P:before 在每个元素的内容之前插入内容;
P:after 在每个
元素的内容之后插入内容。
CSS常用属性总结
1.颜色属性:
transparent
全透明,使用方式:color: transparent
opacity
元素的透明度,语法:opacity: 0.5
属性值在0.0到1.0范围内,0表示透明,1表示不透明。
filter滤镜属性(只适用于早期的IE浏览器,语法:filter:alpha(opacity:20);
)。
2.字体属性:
font-style: 用于规定斜体文本
normal 文本正常显示
italic 文本斜体显示
oblique 文本倾斜显示
font-weight: 设置文本的粗细
normal(默认)
bold(加粗)
bolder(相当于
和
标签)
lighter (常规)
100 ~ 900 整百(400=normal,700=bold)
font-size: 设置字体的大小
默认值:medium
可选参数值:xx-small、 x-small、 small、 medium、 large、 x-large、 xx-large
相对于父标签中字体的尺寸进行调节。可选参数值:smaller、 larger
百分比指定文字大小。
用长度值指定文字大小,不允许负值。
font-family:字体名称
使用逗号隔开多种字体(优先级从前向后,如果系统中没有找到当前字体,则往后面寻找)
font:简写属性
语法:font:字体大小/行高 字体;(字体要在最后)
3.文本属性:
text-align: 文本的水平对齐方式
line-height: 文本行高
vertical-align: 文本所在行高的垂直对齐方式
baseline 默认
sub 垂直对齐文本的下标,和标签一样的效果
super 垂直对齐文本的上标,和标签一样的效果
top 对象的顶端与所在容器的顶端对齐
text-top 对象的顶端与所在行文字顶端对齐
middle 元素对象基于基线垂直对齐
bottom 对象的底端与所在行的文字底部对齐
text-bottom 对象的底端与所在行文字的底端对齐
text-transform: 属性控制文本的大小写
capitalize 文本中的每个单词以大写字母开头。
uppercase 定义仅有大写字母。
lowercase 定义仅有小写字母。
text-overflow: 文本溢出样式
text-decoration: 文本的装饰
none 默认。
underline 下划线。
overline 上划线。
line-through 中线。
text-shadow:文本阴影
text-shadow: 5px 5px 5px #888;
第一个参数是左右位置
第二个参数是上下位置
第三个参数是虚化效果
第四个参数是颜色
word-wrap:自动换行
4.背景属性
背景颜色
background-image 设置图像为背景
url(“1.png”); 图片地址
background-image:linear-gradient(green,blue,yellow,red,black); 颜色渐变效果
background-position 设置背景图像的位置坐标
background-position: center center; 图片置中,x轴center,y轴center
1px -195px 截取图片某部分,分别代表坐标x,y轴
background-repeat 设置背景图像不重复平铺
no-repeat 设置图像不重复,常用
round 自动缩放直到适应并填充满整个容器
space 以相同的间距平铺且填充满整个容器
background-attachment 背景图像是否固定或者随着页面的其余部分滚动
background 简写
background: url(“1.png”) no-repeat 0 -196px;
background: url(“1.png”) no-repeat center bottom 15px;
background: url(“1.png”) no-repeat left 30px bottom 15px;
5.列表属性
list-style-type: 列表项标志的类型
none 去除标志
square; 方框
circle; 空心圆
upper-alph; & disc; 实心圆
list-style-image:将图象设置为列表项标志
list-style-position:列表项标志的位置
list-style:(缩写,3个参数为以上属性)
CSS优先级
当有多个样式对作用于一个标签时便使用到CSS优先级,它来决定哪些样式会被作用于该标签,哪些会被覆盖。
1.选择器的优先级
CSS 7 种基础的选择器:
ID 选择器, 如 #id{}
类选择器, 如 .class{}
属性选择器, 如 a[href=“segmentfault.com”]{}
伪类选择器, 如 :hover{}
伪元素选择器, 如 ::before{}
标签选择器, 如 span{}
通配选择器, 如 *{}
对于标签自有的属性,选择器的优先级规则为
内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器
2.选择符的优先级
所有 CSS 的选择符由上述 7 种基础的选择器或者组合而成,组合的方式有 3 种:
后代选择符: .father .child{}
子选择符: .father > .child{}
相邻选择符: .bro1 + .bro2{}
当一个标签同时被多个选择符选中,我们便需要确定这些选择符的优先级。我们有如下规则:
计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。
3.多重样式优先级
外部样式表和内部样式表的优先级由其引入顺序有关,一般认为内部样式优先级大于外部样式,也可以认为其相等,因为如果外部样式放在内部样式的后面引入,则外部样式将覆盖内部样式。
内联样式 > 内部样式 > 外部样式 > 浏览器默认样式
如果外部样式表和内部样式表中的样式发生冲突会出现什么情况呢?
这与样式表在 HTML 文件中所处的位置有关。样式被应用的位置越在下面则优先级越高
4.继承样式
一般来说对于文字样式的设置都会具有继承性,例如font-family、font-size、font-weight、color等等,当需要继承样式时,最近的祖先样式比其他祖先样式优先级高 。
规则总结:
CSS 优先规则1 : 最近的祖先样式比其他祖先样式优先级高。
CSS 优先规则2 :"直接样式"比"祖先样式"优先级高。
CSS 优先规则3 :优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器
CSS 优先规则4 :计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次比较大小,大的则优先级高,相等则比较下一个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断
CSS 优先规则5 :属性后插有 !important 的属性拥有最高优先级。若同时插有 !important,则再利用规则 3、4 判断优先级。
错误的说法:
在学习过程中,你可能发现给选择器加权值的说法,即 ID 选择器权值为 100,类选择器权值为 10,标签选择器权值为 1,当一个选择器由多个 ID 选择器、类选择器或标签选择器组成时,则将所有权值相加,然后再比较权值。这种说法其实是有问题的。比如一个由 11 个类选择器组成的选择器和一个由 1 个 ID 选择器组成的选择器指向同一个标签,按理说 110 > 100,应该应用前者的样式,然而事实是应用后者的样式。错误的原因是:权重的进制是并不是十进制,CSS 权重进制在 IE6 为 256,后来扩大到了 65536,现代浏览器则采用更大的数量。。还是拿刚刚的例子说明。11 个类选择器组成的选择器的总权值为 110,但因为 11 个均为类选择器,所以其实总权值最多不能超过 100, 你可以理解为 99.99,所以最终应用后者样式。
CSS页面布局
1. 边框
border-style:边框样式
solid 默认,实线
double 双线
dotted 点状线条
dashed 虚线
border-color:边框颜色
border-width:边框宽度
border-radius:圆角
1个参数:四个角都应用
2个参数:第一个参数应用于 左上、右下;第二个参数应用于 左下、右上
3个参数:第一个参数应用于 左上;第二个参数应用于 左下、右上;第三个参数应用于右下
4个参数:左上、右上、右下、左下(顺时针
border: 简写
border: 2px yellow solid;
box-shadow:边框阴影
box-shadow: 10px 10px 5px #888;
第一个参数是左右位置
第二个参数是上下位置
第三个参数是虚化效果
第四个参数是颜色
2.盒子模型
padding:用于控制内容与边框之间的距离;
margin: 用于控制元素与元素之间的距离;
padding、margin
表示上右下左都应用
padding-top、margin-top
上
padding-right、margin-right
右
padding-bottom、margin-bottom
下
padding-left、margin-left
左
有一个参数,应用于四边。
两个参数,第一个用于上、下,第二个用于左、右。
三个参数,第一个用于上,第二个用于左、右,第三个用于下。
当我们写html的时候;在我们写body与浏览器之间还存在一块的空白区域
body{
margin:0;
}
3.display
none 不显示。
block 显示为块级元素。
inline 显示为内联元素。
inline-block 行内块元素(会保持块元素的高宽)。
list-item 显示为列表元素。
4.visibility
visible 元素可见
hidden 元素不可见
collapse 当在表格元素中使用时,此值可删除一行或一列,不会影响表格的布局。
5. float 浮动
让一行显示两个或多个块级标签,会脱离文档流;如果浮动起来的标签的父级标签没有内容;那么父标签将消失;
clear 清除浮动:
none : 默认值。允许两边都可以有浮动对象
left : 不允许左边有浮动对象
right : 不允许右边有浮动对象
both : 不允许两边有浮动对象
6. clip 剪裁图像
rect 剪裁定位元素:
例:clip:rect(0px,60px,200px,0px);
auto 默认值,无剪切
上-右-下-左(顺时针)的顺序提供四个偏移值
区域外的部分是透明的
必须指定 position:absolute;
7.overflow 设置当对象的内容超过其指定高度及宽度时如何显示内容
visible 默认值,内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
8. position 规定元素的定位类型
static: 默认值,没有定位,遵从正常的文档流
relative: 相对定位元素,相对于其正常位置进行定位,遵从正常的文档流
absolute: 绝对定位元素,脱离正常文档流
fixed: 绝对定位元素,固定在浏览器某处
通过以下四种属性进行定位:
left、top、right、bottom、z-index
9.z-index 元素层叠顺序
z-index 仅在定位元素上有效(例:position:absolute;)
可以指定负数属性值(例:-1;)
10. outline 边框轮廓
outline-width 轮廓宽度
outline-color 轮廓颜色
outline-style 轮廓样式
11.zoom 缩放比例 :
.zoom1 {
zoom: 100%;
}
.zoom2 {
zoom: 150%;
}
.zoom3 {
zoom: 200%;
}
12.cursor 鼠标的类型形状
cursor 属性规定要显示的光标的类型(形状)。 该属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状
13.transform、transition 动画效果
transform 转换,变形
origin 定义旋转基点(left top center right bottom 坐标值) transform-origin: 50px 50px; transform-origin: left;。
rotate 旋转 transform:rotate(50deg) 旋转角度可以为负数,需要先定义origin。
skew 扭曲 transform:skew(50deg,50deg) 分别为相对x轴倾斜,相对y轴倾斜。
scale 缩放 transform:scale(2,3) 横向放大2倍,纵向放大3倍;transform:scale(2) 横竖都放大2倍。
translate 移动 transform:translate(50px, 50px) 分别为相对x轴移动,相对y轴移动
transition 过渡属性是一个简写属性,用于设置四个过渡属性:
transition-property: 变换的属性(none(没有属性改变)、all(所有属性改变)、具体属性)
transition-duration: 变换持续时间
transition-timing-function: 变换的速率(ease:(逐渐变慢)、linear:(匀速)、ease-in:(加速)、ease-out:(减速)、ease-in-out:(加速然后减速)、cubic-bezier:(自定义时间曲线))
transition-delay: 变换延迟时间
Flex布局
Flex布局也称弹性布局,可以为盒状模型提供最大的灵活性,是布局的首选方案,现已得到所有现代浏览器的支持。
1.基础
通过指定display: flex
来标识一个弹性布局盒子,称为FLEX容器,容器内部的盒子就成为FLEX容器的成员,容器默认两根轴线,水平的主轴与垂直的交叉轴,主轴的开始位置叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end,容器成员默认按照主轴排列。
2.容器属性
flex-direction
flex-direction
属性决定主轴的方向,取值为row | row-reverse | column | column-reverse
row
默认值:主轴为水平方向,起点在左端。
row-reverse
:主轴为水平方向,起点在右端,容器成员顺序与row顺序相反。
column
:主轴为垂直方向,起点在上沿。
column-reverse
:主轴为垂直方向,起点在下沿,容器成员顺序与column
顺序相反。
flex-wrap
flex-wrap
属性决定当轴线方向放不下成员时,是否换行,取值为nowrap | wrap | wrap-reverse
nowrap
默认:不换行,当空间不足时,会按轴线方向成员大小比例缩小的成员
wrap
:距离不够时换行,新起一行排列 -wrap-reverse
:距离不够时换行,新起的一行在上方
flex-flow
flex-flow
属性是flex-direction
属性和flex-wrap
属性的简写形式,默认row nowrap
justify-content
justify-content
属性定义了成员在主轴上的对齐方式,可以很容易地实现多种布局,取值为flex-start | flex-end | center | space-between | space-around
flex-start
默认值:左对齐 -flex-end
:右对齐
center
: 居中对齐 -space-between
:两端对齐,成员之间的间隔都相等。
space-around
:每个成员两侧的间隔相等,成员之间的间隔比成员与边框的间隔大一倍。
align-items
align-items
属性定义成员在交叉轴上如何对齐,取值为flex-start | flex-end | center | baseline | stretch
stretch
默认值:如果成员未设置高度或设为auto
,将占满整个容器的高度。
flex-start
:交叉轴的起点对齐。
flex-end
:交叉轴的终点对齐。
center
:交叉轴的中点对齐。
baseline
: 成员的第一行文字的基线对齐。
align-content
align-content
属性定义了多根轴线的对齐方式。如果成员只有一根轴线,该属性不起作用,取值为flex-start | flex-end | center | space-between | space-around | stretch
stretch
默认值:轴线占满整个交叉轴。
flex-start
:与交叉轴的起点对齐。
flex-end
:与交叉轴的终点对齐。
center
:与交叉轴的中点对齐。
space-between
:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around
:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
3.成员属性
order
order
属性定义成员的排列顺序,数值越小,排列越靠前,默认为0
flex-grow
flex-grow
属性定义成员的放大比例,默认为0
flex-shrink
flex-shrink
属性定义了成员的缩小比例,默认为1
,即如果空间不足,该成员将缩小。
flex-basis
flex-basis
属性定义了在分配多余空间之前,成员占据的主轴空间main size
,浏览器根据这个属性,计算主轴是否有多余空间,它的默认值为auto
,即成员的本来大小。
flex
flex
属性是flex-grow
, flex-shrink
和flex-basis
的简写,默认值0 1 auto
。后两个属性可选。
align-self
align-self
属性允许单个成员有与其他成员不一样的对齐方式,可覆盖align-items
属性。默认值为auto
,表示继承父元素的align-items
属性,如果没有父元素,则等同于stretch
。
Grid布局
目前CSS
布局方案中,网格布局可以算得上是最强大的布局方案了。它可以将网页分为一个个网格,然后利用这些网格组合做出各种各样的布局。Grid
布局与Flex
布局有一定的相似性,都可以指定容器内部多个成员的位置。不同之处在于,Flex
布局是轴线布局,只能指定成员针对轴线的位置,可以看作是一维布局。Grid
布局则是将容器划分成行和列,产生单元格,然后指定成员所在的单元格,可以看作是二维布局。
1.基础
通过指定display: grid;
指定容器使用Grid
布局,Grid
布局中采用网格布局的区域,称为容器
,容器内部采用网格定位的子元素,称为成员
。容器中水平区域称为行
,垂直区域称为列
,可以将其看作二位数组。划分网格的线就称为网格线
,正常情况下n
行有n + 1
根水平网格线,m
列有m + 1
根垂直网格线。注意当容器设置为Grid
布局以后,容器子元素的float、display: inline-block、display: table-cell、vertical-align和column-*
等设置都将失效。
2.容器属性
grid-template-rows grid-template-columns
grid-template-rows
属性定义每一行的行高,设定为多少行就设置多少个值,取值可以为固定像素,也可以为百分比,grid-template-columns
属性定义每一列的列宽,设定为多少列就设置多少个值,取值可以为固定像素,也可以为百分比
repeat
repeat()
函数可以简化重复的值,其可以自动重复设定的规则
.container {
display: grid;
grid-template-columns: 33.33% 33.33% 33.33%;
grid-template-rows: 33.33% 33.33% 33.33%;
}
有时候,重复写同样的值非常麻烦,尤其网格很多时。这时,可以使用repeat()函数,简化重复的值。上面的代码用repeat()改写如下。
.container {
display: grid;
grid-template-columns: repeat(3, 33.33%);
grid-template-rows: repeat(3, 33.33%);
}
auto-fill
有时,单元格的大小是固定的,但是容器的大小不确定。如果希望每一行或每一列容纳尽可能多的单元格,这时可以使用auto-fill关键字表示自动填充
,当容器不足容纳成员时会自适应换行。
fr关键字
为表示比例关系,网格布局提供了fr
关键字。如果两列的宽度分别为1fr
和2fr
,就表示后者是前者的两倍。
minmax函数
minmax()
函数产生一个长度范围,表示长度就在这个范围之中。它接受两个参数,分别为最小值和最大值,当距离不够时会从最大值自动减少长度或宽度到设定最小值为止。 minmax( [ | | min-content | max-content | auto ] , [ | | | min-content | max-content | auto ] )
auto关键字
auto
关键字表示由浏览器自己决定长度,基本上等于该列单元格的最大宽度,除非单元格内容设置了min-width
,且这个值大于最大宽度。
grid-row-gap / grid-column-gap/ grid-gap
grid-row-gap
属性设置行与行的间隔,即行间距
grid-column-gap
属性设置列与列的间隔,即列间距
grid-gap
属性是grid-column-gap
和grid-row-gap
的合并简写形式,如果grid-gap
省略了第二个值,浏览器认为第二个值等于第一个值
grid-template-areas
网格布局允许指定区域area
,一个区域由单个或多个单元格组成,grid-template-areas
属性用于定义区域。区域的命名会影响到网格线。每个区域的起始网格线,会自动命名为{areaName}-start
,终止网格线自动命名为{areaName}-end
grid-auto-flow
划分网格以后,容器的子元素会按照顺序,自动放置在每一个网格。默认的放置顺序是先行后列,通过设置grid-auto-flow
可以更改为先列后行,grid-auto-flow
属性除了设置成row
和column
,还可以设成row dense
和column dense
,这两个值主要用于某些项目指定位置以后,剩下的项目怎么自动放置。
justify-items / align-items / place-items
justify-items
属性设置成员中内容的水平位置,取值为start | end | center | stretch
align-items
属性设置成员中内容的垂直位置,取值为start | end | center | stretch
place-items
属性是align-items
属性和justify-items
属性的合并简写形式,如果省略第二个值,则浏览器认为与第一个值相等。
stretch
默认值:拉伸,占满单元格的整个宽度。
start
:对齐单元格的起始边缘。
end
:对齐单元格的结束边缘。
center
:单元格内部居中。
justify-content / align-content / place-content
justify-content
属性是整个内容区域在容器里面的水平位置,也就是成员的水平分布,取值为start | end | center | stretch | space-around | space-between | space-evenly
align-content
属性是整个内容区域在容器里面的垂直位置,也就是成员的垂直分布,取值为start | end | center | stretch | space-around | space-between | space-evenly
place-content
属性是align-content
属性和justify-content
属性的合并简写形式,如果省略第二个值,则浏览器认为与第一个值相等。
space-around
- 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍。
space-between
- 项目与项目的间隔相等,项目与容器边框之间没有间隔。
space-evenly
- 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔。
grid-auto-columns grid-auto-rows
有时候,一些项目的指定位置,在现有网格的外部。比如网格只有3行,但是某一个项目指定在第5行。这时,浏览器会自动生成多余的网格,以便放置项目。grid-auto-columns
属性和grid-auto-rows
属性用来设置,浏览器自动创建的多余网格的列宽和行高。它们的写法与grid-template-columns
和grid-template-rows
完全相同。如果不指定这两个属性,浏览器完全根据单元格内容的大小,决定新增网格的列宽和行高。
3.项目属性
grid-column-start / grid-column-end
·grid-column-start·属性指定左边框所在的垂直网格线,·grid-column-end·属性指定右边框所在的垂直网格线
grid-row-start / grid-row-end
grid-row-start
属性指定上边框所在的水平网格线,grid-row-end
属性指定下边框所在的水平网格线
还可以给轴线命名来指定位置
grid-column / grid-row
grid-column
属性是grid-column-start
和grid-column-end
的合并简写形式,grid-row
属性是grid-row-start
属性和grid-row-end
的合并简写形式。
grid-area
grid-area
属性指定项目放在grid-template-areas
指定的区域,还可用作grid-row-start、grid-column-start、grid-row-end、grid-column-end
的合并简写形式,直接指定项目的位置。
justify-self / align-self / place-self
justify-self
属性设置单元格内容的水平位置,跟justify-items
属性的用法完全一致,但只作用于单个项目,取值为start | end | center | stretch;
。 align-self
属性设置单元格内容的垂直位置,跟align-items
属性的用法完全一致,也是只作用于单个项目,取值为start | end | center | stretch;
。
stretch
默认值:拉伸,占满单元格的整个宽度。
start
:对齐单元格的起始边缘。
end
:对齐单元格的结束边缘。
center
:单元格内部居中。
place-self
属性是align-self
属性和justify-self
属性的合并简写形式。
Table布局
最常用的使用方法是制作表格,由于其对占据的空间有着划分的作用,便可以使用来布局。
实例
实现一个简单的布局,将表格的border
、cellpadding
、cellspacing
全部设置为0
,表格的边框和间距就不占有页面空间,它只起到划分空间的作用,如果布局复杂,可以在单元格中再嵌套表格,单元格中的元素或者嵌套的表格用align
和valign
设置对齐方式。要注意的是,在HTML5标准中,的align
、bgcolor
、cellpadding
、cellspacing
、frame
、rules
、summary
、width
属性皆已不再支持,由CSS设置相关属性来呈现效果。
TABLE布局
问题
使用来布局绝对不是一个好的解决方案,对于布局方案首选Flex
布局,稍微复杂的布局可以选择Grid
布局方案,本身是为呈现表格化的数据而设计的,如果使用来呈现数据表格是完全没有问题的。
要比其它html标记占更多的字节,代码的复杂度会大大提升。
会阻塞浏览器渲染引擎的渲染顺序,是整体载入后才开始显示的,没有加载完毕前,为一片空白,而等标签可以逐行渲染,一边加载一边显示。
>经常需要多个关口,因为可以影响在它们之前已经进入的DOM
元素的显示的元素。假设因为表格最后一个单元格的内容过宽而导致纵列大小完全改变,这会造成浏览器的回流从而引发渲染性能问题。
里显示图片时有可能需要你把单个、有逻辑性的图片切成多个图,这个主要看需求,中进行单元格合并操作也是可行的方案。
会影响其单元格内部的某些布局属性的生效。
的各种属性逐渐不受支持,需要使用CSS
控制显示相应效果。
的语义是数据表格,使用来布局不利于SEO
。
若布局较为复杂,则可能造成多层嵌套,代码嵌套过多表现的过于复杂。
display
倘若需要类似于表格的布局,可以使用display: table;
来呈现,display
的table
属性值只是声明了某些元素在浏览器中的样式,其并不包含语义,他的属性基本能够对应系列标签,并且还能将缺少的表格元素会被浏览器以匿名方式创建,CSS2.1
规范中写道:CSS2.1
表格模型中的元素,可能不会全部包含在除HTML
之外的文档语言中。这时,那些“丢失”的元素会被模拟出来,从而使得表格模型能够正常工作。所有的表格元素将会自动在自身周围生成所需的匿名table
对象,使其符合table/inline-table、table-row、table-cel
l的三层嵌套关系。
table
类似:此元素会作为块级表格来显示,表格前后带有换行符。
inline-table
类似:此元素会作为内联表格来显示,表格前后没有换行符。
table-header-group
类似:此元素会作为一个或多个行的分组来显示。
table-footer-group
类似:此元素会作为一个或多个行的分组来显示。
table-row
类似:此元素会作为一个表格行显示。
table-row-group
类似:此元素会作为一个或多个行的分组来显示。
table-column
类似
:此元素会作为一个单元格列显示。
table-column-group
类似
:此元素会作为一个或多个列的分组来显示。
table-cell
类似和:此元素会作为一个表格单元格显示。
table-caption
类似
:此元素会作为一个表格标题显示。
布局垂直居中
首先将
与
的高度设置为100%
(为演示父元素不定宽高的效果),并清除
的默认样式
html,body{
margin: 0;
height: 100%;
}
垂直居中大致分为两类,父元素定宽高与父元素不定宽高,将两类样式以及子容器设定好
.set-parent,.dy-parent{
width: 300px;
height: 200px;
background: #eee;
margin: 10px 0;
}
.child{
width: 20px;
height: 10px;
background: #fff;
}
.dy-parent{
width: 30%;
height: 20%;
}
1. 父元素定宽高 position + margin
使用margin: auto
使水平居中,将子容器设定为relative
以在不脱离文档流的情况下偏移50%
,由于本身子容器占用一定宽高,会将其撑下,使用margin
使其向上偏移。 若是子容器使用absolute
定位,则父容器应设置为relative
,否则会其相对于static
定位以外的第一个父元素进行定位,在本Demo中会以浏览器为基准定位;此外absolute
无法使用margin: auto
水平居中。
2. 父元素定宽高 position + transform
原理与position
+margin
相同,CSS3的transform
使得div
向上平移自身高度的50%
。
3. 父元素定宽高 position + calc
css3提供calc
函数,能够进行动态计算
4. 父元素不定宽高 flex
flex
布局可以说是布局神器,极其强大,现在大部分浏览器都兼容性flex
布局
5. 父元素不定宽高 grid
Grid
布局将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局 Grid
布局与Flex
布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 Flex
布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid
布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。Grid
布局远比Flex
布局强大。
6. 父元素不定宽高 table
table
中有vertical-align
属性设置垂直对齐方式
响应式布局
响应式布局指的是同一页面在不同屏幕尺寸或者在不同的设备下有不同的布局,能够在大屏设备以及小屏设备获得更好的浏览体验,简单来说就是页面适应终端而无需为每个终端制作单独的页面。
1.媒体查询
通过使用CSS媒体查询来实现响应式布局,针对不同的媒体类型设置不同的样式规则,可以根据视窗、设备高度与宽度、设备方向、分辨率等进行不同CSS适配。
使用link链接
直接在CSS中使用
使用@import导入
/* @import url("example.css") mediatype and|not|only (media feature); */
@import url("example.css") all and (max-width:600px);
媒体类型
all: 用于所有设备。
print: 用于打印机和打印预览。
screen: 用于电脑屏幕,平板电脑,智能手机等。
speech: 应用于屏幕阅读器等发声设备。
逻辑操作符
and: 表示且,当所有的条件满足的时候返回true。
not: 是用来排除某种制定的媒体类型。
only: 用来指定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器。
,: 逗号用于将多个媒体查询合并为一个规则,逗号分隔效果等同于or逻辑操作符。
媒体功能
aspect-ratio: 定义输出设备中的页面可见区域宽度与高度的比率。
color: 定义输出设备每一组彩色原件的个数。如果不是彩色设备,则值等于0。
color-index: 定义在输出设备的彩色查询表中的条目数,如果没有使用彩色查询表,则值等于0。
device-aspect-ratio: 定义输出设备的屏幕可见宽度与高度的比率。
device-height: 定义输出设备的屏幕可见高度。
device-width: 定义输出设备的屏幕可见宽度。
grid: 用来查询输出设备是否使用栅格或点阵。
height: 定义输出设备中的页面可见区域高度。
max-aspect-ratio: 定义输出设备的屏幕可见宽度与高度的最大比率。
max-color: 定义输出设备每一组彩色原件的最大个数。
max-color-index: 定义在输出设备的彩色查询表中的最大条目数。
max-device-aspect-ratio: 定义输出设备的屏幕可见宽度与高度的最大比率。
max-device-height: 定义输出设备的屏幕可见的最大高度。
max-device-width: 定义输出设备的屏幕最大可见宽度。
max-height: 定义输出设备中的页面最大可见区域高度。
max-monochrome: 定义在一个单色框架缓冲区中每像素包含的最大单色原件个数。
max-resolution: 定义设备的最大分辨率。
max-width: 定义输出设备中的页面最大可见区域宽度。
min-aspect-ratio: 定义输出设备中的页面可见区域宽度与高度的最小比率。
min-color: 定义输出设备每一组彩色原件的最小个数。
min-color-index: 定义在输出设备的彩色查询表中的最小条目数。
min-device-aspect-ratio: 定义输出设备的屏幕可见宽度与高度的最小比率。
min-device-width: 定义输出设备的屏幕最小可见宽度。
min-device-height: 定义输出设备的屏幕的最小可见高度。
min-height: 定义输出设备中的页面最小可见区域高度。
min-monochrome: 定义在一个单色框架缓冲区中每像素包含的最小单色原件个数
min-resolution: 定义设备的最小分辨率。
min-width: 定义输出设备中的页面最小可见区域宽度。
monochrome: 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0。
orientation: 定义输出设备中的页面可见区域高度是否大于或等于宽度。
resolution: 定义设备的分辨率。
scan: 定义电视类设备的扫描工序。
width: 定义输出设备中的页面可见区域宽度。
2.单位
百分比单位
当度量单位设置为百分比时,即可使浏览器组件宽高随着浏览器的大小相应变化。
子元素的height或width中使用百分比,是相对于子元素的直接父元素,width相对于父元素的width,height相对于父元素的height。
子元素的top和bottom如果设置百分比,则相对于直接非static定位的父元素的高度,同样子元素的left和right如果设置百分比,则相对于直接非static定位父元素的宽度。
子元素的padding如果设置百分比,不论是垂直方向或者是水平方向,都相对于直接父亲元素的width,而与父元素的height无关。
子元素的margin如果设置成百分比,不论是垂直方向还是水平方向,都相对于直接父元素的width。
设置border-radius为百分比,则是相对于自身的宽度,还有translate、background-size等都是相对于自身的。
em单位
em是相对长度单位,相对于当前对象内文本的字体尺寸,若未设置则相对于浏览器默认字体尺寸16px,em是会继承父元素的字体的尺寸,使用时需要重新计算子元素的em值避免1.2*1.2=1.44的现象,使用em可以使元素根据字体大小的动态调整来制作响应式布局。
rem单位
rem单位都是相对于根元素html的font-size来决定大小的,根元素的font-size相当于提供了一个基准,当页面的size发生变化时,只需要改变font-size的值,那么以rem为固定单位的元素的大小也会发生相应的变化。因此,如果通过rem来实现响应式的布局,只需要根据视图容器的大小,动态的改变根元素的font-size即可。
vh vw vmin vmax
vh: 相对于视窗的高度,1vh等于视窗高度的1%。
vw: 相对于视窗的宽度,1vw等于视窗宽度的1%。
vmin: vw和vh中的较小值。
vmax: vw和vh中的较大值。
缩放比例
通过动态地控制网页视图的缩放比例来制作响应式布局。
自适应布局
自适应布局一般是通过检测User-Agent
来判断当前访问的设备是PC端还是平板或者是手机,或者是通过检测窗口分辨率而请求服务器,从而服务端重定向或者返回不同的页面,需要开发多个页面来适应不同的设备,通常自适应布局与响应式布局并不是单独使用的,可以通过开发一套PC端页面与一套移动端页面来实现自适应布局,而两套页面都实现对于不同范围分辨率的响应式布局,可以避免过大的CSS样式表又可以获得较好的浏览体验,
box-sizing属性
box-sizing
是用于告诉浏览器如何计算一个元素是总宽度和总高度
对于给定width
和height
的元素,设置box-sizing
属性会影响盒子content width
和content height
。
浏览器默认使用标准盒子模型,即box-sizing: content-box
, 就是我们所写的宽度和高度就是对content
进行设置的。
在一些响应式布局中,我们修改了浏览器计算元素宽度、高度的方式,认为元素的宽度和高度是包括内边距padding
和边框border
你可能感兴趣的:(前端学习)
【前端学习笔记】CSS的两种盒子模型
花上
CSS有两种盒子模型。一种是W3C的标准盒子模型。另一种是IE的盒子模型。W3C的标准盒子模型中width包括了width+padding+border。IE的盒子模型的width只有width,不包含padding和border。box-sizing的作用如果想要切换盒子模型,可以使用box-sizing属性。例:box-sizing:content-box是W3C盒子模型 box-sizin
如何自学前端找到一份工作
luckySnail01
前端 学习
建议先看下鱼皮的两个视频+如何学习技术文章:https://bcdh.yuque.com/staff-wpxfif/resource/rito86b49l53w1w2(前端1小时-1小时16分钟)https://www.bilibili.com/video/BV1nh411e7oG,超级详情的前端学习路线https://bcdh.yuque.com/staff-wpxfif/resource/nx
前端项目启动 npm 安装 之 常见错误 意外解决了 一直报 esbuild 的问题,使程序正常运行
写在前面:本文作为本人学习总结之用,同时分享给大家~个人前端博客网站:zhangqiang.hk.cn欢迎加入博主的前端学习qq交流群::706947563,专注前端开发,共同学习进步!通常要运行一个前端项目操作流程为:npminstall(用于安装库,可以理解为初试化用的)npmstart(启动项目)1、上面这两个为我们理想话的安装,实际上会遇到各种意想不到的bug,比如网络原因,这个时候我们要
前端学习路线推荐
oldfifteen
第一阶段:HTML+CSS:HTML进阶、CSS进阶、div+css布局、HTML+css整站开发、JavaScript基础:Js基础教程、js内置对象常用方法、常见DOM树操作大全、ECMAscript、DOM、BOM、定时器和焦点图。JS基本特效:常见特效、例如:tab、导航、整页滚动、轮播图、JS制作幻灯片、弹出层、手风琴菜单、瀑布流布局、滚动事件、滚差视图。JS高级特征:正则表达式、排序算
前端学习笔记:React.js中state和props的区别和联系
文章目录1.`props`(属性)定义用途示例2.`state`(状态)定义用途示例3.核心区别4.常见使用场景props的场景state的场景5.交互模式父组件修改子组件状态子组件通知父组件6.最佳实践总结在React.js中,state和props是两个核心概念,用于管理组件的数据和数据流。它们的设计目的不同,但共同构成了React组件的状态管理系统。1.props(属性)定义外部传入的数据:
前端学习 vben 之 axios interceptors
aha-凯心
vben admin启航 前端 学习
前端学习vben之axiosinterceptorsinterceptor拦截器,是一种软件设计模式,核心思想就是在程序执行的特定阶段(如请求发送前,响应返回后,方法调用前后等)自动插入自定义逻辑。实现对核心流程的“拦截”和增强。它本质上是一种面向切面编程(AOP)的具体实现,用于解耦横跨多个模块的通用功能(如日志、认证、错误处理)。axios中的interceptoraxios中实现了inter
如何像我这样创建一个酷炫且能赚钱的网站(使用宝塔安装WordPress搭建子比主题)
海拥✘
100个前端优质项目 前端 服务器 网络
个人网站:【海拥】【摸鱼小游戏】【神级源码资源网站】风趣幽默的前端学习课程:28个案例趣学前端想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】免费且实用的前端刷题(面经大全)网站:点击跳转到网站3ÿ
学习记录:DAY33
2301_79760424
每日学习记录 学习
前端学习之旅:Node.js模块与HTTP服务前言----------------------------------------又是许久许久没有更新,在苦哈哈弄完期末,然后花一天时间把计算机网络课设写了之后。现在又即将回到前后端学习的状态。我想现在正处于一个调整期的状态。一个是随着blog的不断堆积,有必要把它们整理成更具有逻辑性的知识片。另一个是我需要了解当前前后端需要学习的路线,这样我可以有
JAVA进阶之路
夜澜听雨声
Java Advance java 开发语言
JAVA进阶之路一、Java企业开发基础1.JavaWeb2.SSM框架3.Maven4.Springboot25.mybatis-plus6.前端学习(不算很重要)7.SpringSecurity(有时间再看,不重要)8.代码开发规范(不重要,有时间看)9.Git10.Linux(不重要,会用就行)二、Java企业开发进阶1.设计模式2.Redis(核心)3.消息队列RocketMQ(核心)4.
vue3项目练习大全(附github源码)
尔嵘
Vue3.0 vue.js 前端 javascript
vue慢慢的成为了前端最受欢迎的框架之一,在很多项目之中开发都能用得到,如今也已经发展到3.0了,可能是因为这个框架可以提高工作效率,因此受到大家的追捧,在之前的文章里面也说过,2019年,大前端学习小程序和vue是必备技能。2023年必将是vue3-ts主流,拥抱新技术必须是我们要接受的!如果在平时的工作里,有些公司用不到这两项技能,那你也要在业余的时间里面,找一些教程和练手的vue小项目。以下
前端学习不迷茫(建议收藏)学习路线
aha-凯心
前端 学习
theme:cyanosis前端学习不迷茫(建议收藏)当你点进来的时候,我默认你是一个前端开发的新手,或者是一个想要了解前端开发的人。让我们开启前端学习路线指导之旅。什么是前端?狭义上的前端开发,是指使用HTML、CSS、JavaScript进行网页制作。而广义上的前端开发,则是包括了网页,微信小程序,手机app,电脑软件,电视app,等一系列有屏幕显示,可进行人机交互的开发工作。前端招聘要求这样
【Python@arcpy】 GeoDataBase 导出为Shapefile
seelingzheng
python arcpy GIS可视化
关注公众号"seeling_GIS",领取前端学习视频资料数据源是gdb,需要用超图发布成服务,所有想到的办法就是通过将数据转换成shp然后在通过shp导入到超图udb文件中,然后发布成服务。虽然arcmap中能够通过界面化操作就能够实现,但是如果如果数据量过大,分类过多就比较费时费力,只是一个没有技术含量的体力活,所有想着用arcpy来实现通过脚本的方式批量转换。以下代码实现了gdb数据到shp
Web API总结与深化进阶
是一条大黄鱼呀
前端 前端 javascript html
提示:这是一个非常弱智的前端学习者的一点追求弱智简单清晰的傻瓜笔记,一个经常打完代码打辩论的某弗雷尔卓德寒冷211高校的天天想家的孩子的“胡说八道”。这是第四节——WebAPI总结与深化进阶HHYYZZ的蓝旭笔记WebAPI进阶一、变量声明与WebAPI基本认知1、变量声明关键字特点使用场景注意事项var函数作用域,可重复声明旧版代码兼容存在变量提升,建议淘汰let块级作用域,不可重复声明需要重新
前端学习<四>JavaScript基础——37-通过style对象获取和设置行内样式
style属性的获取和修改在DOM当中,如果想设置样式,有两种形式:className(针对内嵌样式)style(针对行内样式)这篇文章,我们就来讲一下style。需要注意的是:style是一个对象,只能获取行内样式,不能获取内嵌的样式和外链的样式。例如: Title div{ border:6pxsolidred; }
一文快速学习HTTP协议知识:前端学习调试必须掌握
Microi风闲
【全栈】全栈开发 http 前端 调试
文章目录前言一、HTTP协议基础1.1HTTP协议概述1.2HTTP工作流程二、HTTP请求详解2.1请求结构2.2请求方法(HTTPMethods)2.3请求头(RequestHeaders)2.4请求参数三、HTTP响应详解3.1响应结构3.2状态码(StatusCodes)3.3响应头(ResponseHeaders)3.4响应体(ResponseBody)四、HTTP高级特性4.1持久连接
【前端学习笔记】Redux
Love__Tay
前端 学习 笔记
文章目录前言Redux1简介2笔记创建一个ReduxStore从ReduxStore获取状态分发ActionEvent在Store里处理Action使用Switch语句处理多个Actions使用const声明ActionTypes注册Store监听器组合多个Reducers发送ActionData给Store使用中间件处理异步操作前言前端开发库学习笔记,仅供参考交流,如有侵权,请联系删除。Redu
《前端学习》-css之border-image记录
颠沛流离笑忘书
菜鸟 css 前端 学习
border-image:设置图像用作围绕元素的边框,必须要先设置border属性才能起作用。border-image的三大部分:1、用作边框的图像:border-image-source属性;定义:规定边框使用的图像,代替border-style属性中设置的边框样式,如果值为“none”,或者图像无法显示,则使用border-style设置的边框样式,可使用绝对路径与相对路径,例:div{bor
JavaScript- 4.3 轮播图实现指南
Yvonne爱编码
前端 javascript 开发语言 ecmascript java 前端 css html
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。HTML和CSS系列文章已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!本文实现了两种轮播图,大家可以都试一下!系列文章目录JavaScript-1.1行内、内部、外部三种引用方式JavaScrip
前端学习 后端工程师 #2
好学且牛逼的马
前端框架 前端 后端
#2JAVAweb知识点回顾#1前端三大件htmlcssjs(看的懂基础语法即可)4.DOM(前端底层原理了解即可)网页编程接口抽象成对象模型DOM事件DOM树动态操作->5.dom是bom的一部分DOM是Web开发的核心机制之一,通过将网页结构化,使JavaScript能高效控制页面动态行为。现代框架(如React、Vue)虽封装了部分DOM操作细节,但底层仍依赖DOM原理,理解DOM是前端开发
JavaScript- 1.1 行内、内部、外部三种引用方式
Yvonne爱编码
前端 css 前端 html HBuilder 状态模式 javascript
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。HTML和CSS系列文章已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!系列文章目录JavaScript-1.1行内、内部、外部三种引用方式JavaScript-1.2ECMA基本语法和控制流Jav
CSS-5.1 Transition 过渡
Yvonne爱编码
css 前端 状态模式 HBuilder html5
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。HTML系列文章已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!系列文章目录CSS-1.1css选择器CSS-2.1实战之图文混排、表格、表单、学校官网一级导航栏CSS-3.1盒子模型-块级元素、行
前端学习总结(十四)javascript设计模式
浩时代
javascript javascript 设计模式 前端
一什么是设计模式设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。二设计原则要学会设计模式,首先要了解设计模式所依托的设计原则:(1)单一职责原则(SRP原则):一个对象(方法)只做一件事情。运用的设计模式:代理模式,单例模式,装饰者模式等。(2)最少知识原则(LKP原则)
WEB前端学习JAVA的一些建议
caperxi
前端开发的Java之路:DOM 到 Spring 的跨界笔记 前端 学习 java
作为前端开发者转型Java,需结合已有编程思维(如JS异步、组件化),聚焦Java核心差异(强类型、JVM、框架生态),以**“项目驱动+前后端联动”**加速上手。一、学习资源优化(前端友好型)1.快速入门:语法+核心特性(1-2周)视频课(B站免费):黑马Java基础(3天速通):重点看「面向对象」「异常处理」「集合框架」,对比JS的类、Promise异常、数组操作(如ArrayListvsJS
2025.3.29-2025.8.29前端学习计划
jjjjjjjjj¢
学习
详细学习计划(4月-8月,每周安排)目标:在5个月内掌握Vue3源码、TypeScript高级用法、微前端(qiankun)、Node.js、前端性能优化、地图&WebGL。4月:Vue3源码&TypeScript高级目标:深入理解Vue3响应式原理&熟练TypeScript类型进阶,能编写高质量前端代码。Week1(4.1-4.7):Vue3响应式原理✅Vue3reactive&ref实现原理✅
前端学习笔记之5 静态页面练习(登录)
庞仕山
前端学习笔记 前端 html
引言:博主目前是一名iOS开发者,所会的语言有Objective-C和Swift,目前正在学习前端;这篇文章只是作为我的笔记发在这里,供自己业余时间看看;全是很基础的东西,看到的小伙伴酌情略过吧^_^效果图:1.代码-HTML登录欢迎登录下次自动登录忘记密码?登录还没账号?马上注册社交账号登录2.代码-CSS*{padding:0px;margin:0px;}body{background-col
前端学习之CSS---定位、锚点、精灵图、浮动、窗口自适应
Jonahr
前端学习 css 前端 学习
定位、锚点、精灵图、浮动、窗口自适应一、定位—positionposition:static/absolute/relative/fixed/stickystatic:默认值absolute:绝对定位,脱离文档流,当没有父元素或者父元素没有定位,参照物为浏览器窗口的第一屏有父元素且父元素有定位时,参照物为父元素relative:相对定位,不脱离文档流,相对于自己的初始位置fixed:固定定位,脱离
一些实用的网站...持续更新
吴_知遇
windows
文章目录学习CursorAIIDE额外的网站学习英语的网站学习编程的网站学习Cursor链接:Cursor入门教程链接:前端学习_MDN链接:极客学习网站(python)_需要付费链接:可视化的学习代码网站——codedexAIIDE国内第一款AIIDE产品TraeAI,让AI融入到了编码阶段中,掌握AI编程技能,不仅能够应对未来的技术变革,还能在竞争激烈的市场中脱颖而出。支持用户免费使用Clau
学习记录:DAY13
2301_79760424
每日学习记录 学习
Vue前端学习之旅:工程化、ElementPlus与路由配置前言有两天没更新blog了,不是因为我懒哈,主要是确实没有学什么新东西。昨天做前端的时候被狠狠卡住了,因为不会构建Vue工程。所以花点时间学学前端,大概两到三天。日程2:00起床,写了一会接口文档,开始学习前端。18:00,吃了顿饭,回来继续。经典修bug不看报错位置,找半天问题发现找错地方了22:00,快进了一些地方,来写写要点。学习内
前端学习——nodejs篇
每月一瓶米诺地尔
apaas线搭建 前端 javascript nodejs
是的,当你实例化一个类时,会自动执行该类的构造函数(constructor)。例如:constBaseService=require("./Base");classStoreServiceextendsBaseService{constructor(data={}){data.model="store";super(data);}//获取所有门店idasyncfindOneByStoreId(st
裸辞后找工作有多难?分享个人经历+面经+学习路线【内含免费下载初级前端面试题】- 回忆我的2023
前端Jerry_Zheng
前端面试分享 学习 前端 vue.js 面试 js html css
个人博客主页一个努力学习的程序猿专栏:HTML和CSSJavaScriptjQueryVueVue3ReactTypeScriptuni-appLinux前端面试分享前端学习+方案分享(VitePress、html2canvas+jspdf、vuedraggable、videojs)前端踩坑日记(ElementUI)重要的说明放在前面(“免责声明”):因为大家也都知道面试的时候,一个问题肯定会有多
异常的核心类Throwable
无量
java 源码 异常处理 exception
java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy
package com.natsu;
mongoDB 游标(cursor) 实现分页 迭代
开窍的石头
mongodb
上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询
如何声明一个游标
var mycursor = db.user.find({_id:{$lte:5}});
迭代显示游标数
MySQL数据库INNODB 表损坏修复处理过程
0624chenhong
tomcat mysql
最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -
剖析如何与设计人员沟通
不懂事的小屁孩
工作
最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。
那应该如何与设计人员沟通呢?
我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,
qq空间刷评论工具
换个号韩国红果果
JavaScript
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l
S2SH整合之session
灵静志远
spring AOP struts session
错误信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped
xmp标签
a-john
标签
今天在处理数据的显示上遇到一个问题:
var html = '<li><div class="pl-nr"><span class="user-name">' + user
+ '</span>' + text + '</div></li>';
ulComme
Ajax的常用技巧(2)---实现Web页面中的级联菜单
aijuans
Ajax
在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐
天-安-门,好高
atongyeye
情感
我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。
晚上躺在床上一个人想了很久,很久。
我生在农
android 动画
百合不是茶
android 透明度 平移 缩放 旋转
android的动画有两种 tween动画和Frame动画
tween动画;,透明度,缩放,旋转,平移效果
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
Animation
查看本机网络信息的cmd脚本
bijian1013
cmd
@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt"
@echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt"
@echo ___________________>>"%userprofile%\
plsql 清除登录过的用户
征客丶
plsql
tools---preferences----logon history---history 把你想要删除的删除
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_spac
【Pig一】Pig入门
bit1129
pig
Pig安装
1.下载pig
wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz
2. 解压配置环境变量
如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量
expor
Java 线程同步几种方式
BlueSkator
volatile synchronized ThredLocal ReenTranLock Concurrent
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法&
StringUtils判断字符串是否为空的方法(转帖)
BreakingBad
null StringUtils “”
转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==
null
或 str.length()==
0
编程之美-分层遍历二叉树
bylijinnan
java 数据结构 算法 编程之美
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LevelTraverseBinaryTree {
/**
* 编程之美 分层遍历二叉树
* 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要
jquery取值和ajax提交复习记录
chengxuyuancsdn
jquery取值 ajax提交
// 取值
// alert($("input[name='username']").val());
// alert($("input[name='password']").val());
// alert($("input[name='sex']:checked").val());
// alert($("
推荐国产工作流引擎嵌入式公式语法解析器-IK Expression
comsci
java 应用服务器 工作 Excel 嵌入式
这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。
----------转帖---------------------------------------------------
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言
关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
daizj
spring
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
<bean id="propertyConfigurerForWZ&q
二叉树:二叉搜索树
dieslrae
二叉树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表.
tree代码:
C语言字符串函数大全
dcj3sjt126com
c function
C语言字符串函数大全
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main
友盟统计页面技巧
dcj3sjt126com
技巧
在基类调用就可以了, 基类ViewController示例代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]];
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
flyvszhb
java jdk
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21&quo
Java在创建子类对象的同时会不会创建父类对象
happyqing
java 创建 子类对象 父类对象
1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,
2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam
跟我学spring3 目录贴及电子书下载
jinnianshilongnian
spring
一、《跟我学spring3》电子书下载地址:
《跟我学spring3》 (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf
跟我学spring3系列 word原版 下载
二、
源代码下载
最新依
第12章 Ajax(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
BI and EIM 4.0 at a glance
blueoxygen
BO
http://www.sap.com/corporate-en/press.epx?PressID=14787
有机会研究下EIM家族的两个新产品~~~~
New features of the 4.0 releases of BI and EIM solutions include:
Real-time in-memory computing –
Java线程中yield与join方法的区别
tomcat_oracle
java
长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。
&nb
android Manifest.xml选项
阿尔萨斯
Manifest
结构
继承关系
public final class Manifest extends Objectjava.lang.Objectandroid.Manifest
内部类
class Manifest.permission权限
class Manifest.permission_group权限组
构造函数
public Manifest () 详细 androi
Oracle实现类split函数的方
zhaoshijie
oracle
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。
CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);
cr