< style>
.lixiang {
color : blue;
}
.zhangsan {
color : brown;
}
.wangwu {
color : chartreuse;
}
style>
< body>
< div>
< span class = " lixiang" > 李祥 span>
div>
< div>
< span class = " zhangsan" > 张三 span>
div>
< div>
< span class = " wangwu" > 王五 span>
div>
body>
2.CSS核心基础知识
2.1.CSS标签选择器+viewport布局
(1)什么是标签选择器
标签选择器主要针对的是页面中某个标签中的样式设置,它的作用范围是这个页面内所有写在该标签内的内容,标签选择器可以定义多个标签的样式。
语法
< style>
标签名 {
属性 : 属性值;
}
style>
< style>
div {
width : 200px;
height : 200px;
background-color : burlywood;
}
style>
< body>
< div> div>
body>
(2)什么是viewport布局
手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽。
这样就不用把每个网页挤到很小的窗口中,也不会破坏没有针对手机浏览器优化的网页的布局,用户可以通过平移和缩放来看网页的不同部分。
移动版的 Safari 浏览器最新引进了viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
2.2.CSS样式的几种写法
写法
内部样式表
< style>
div {
width : 200px;
height : 200px;
background-color : burlywood;
}
style>
< body>
< div> div>
body>
内联样式表
< body>
< div style = " width : 100px; height : 100px; background-color : azure; " > div>
body>
外部样式表
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< link rel = " stylesheet" href = " ./css/index.css" >
head>
< style>
style>
< body>
< div> div>
body>
html>
div {
width : 200px;
height : 200px;
background-color : burlywood;
}
为什么选择外部样式表
解决⻚⾯当中样式重复的问题
代码分离,利于代码维护和阅读
浏览器会缓存起来,提⾼⻚⾯响应速度变快了
2.3.CSS常⻅选择器的使用
(1)元素(标签)选择器
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a,甚至可以是 html 本身。
html {color:black;} h1 {color:blue;} h2 {color:silver;} 可以将某个样式从一个元素切换到另一个元素。
div {
width : 200px;
height : 200px;
background-color : burlywood;
}
(2)组合选择器
页面元素比较复杂,存在多个嵌套。为了更加灵活选择页面中的元素,CSS中还提供了组合选择器。
组合选择器就是将多个基本选择器通过一定的规则连接起来组成一个复杂选择器。
h1,p
{
color : red;
}
(3)类选择器
h1.lixiang
{
color : red;
}
< style>
.lixiang {
color : red;
}
.background {
background-color : blueviolet;
}
style>
< body>
< div class = " lixiang background" > div>
body>
.xiaodi.background
{
color : red;
background-color : black
}
(4)id选择器
声明:
属性:id= "important
注意:一个id选择器的属性值在html文档中只能出现一次,避免写js获取id时出现混淆
< style>
#lixiang {
color : greenyellow;
background-color : cornsilk;
}
style>
< body>
< div id = " lixiang" > 李祥 div>
body>
(5)通配符选择器
通配符选择器使用*
来定义,表示选区页面中所有的标签。优先级最低,一般是在页面初始化的时候才使用,或者某些特殊情况下例如清除页面内外边距。
* {
margin : 0;
padding : 0;
}
(6)派⽣选择器
张三
李祥
张三
h1+p {
background-color : pink;
}
2.4.CSS特殊选择器的使用
(1):first-child {} 第一项
< style>
li:first-child {
color : red;
}
style>
< body>
< ul>
< li> 李祥 li>
< li> 张三 li>
< li> 王五 li>
ul>
body>
(2):last-child {} 最后一项
< style>
li:last-child {
color : red;
}
style>
< body>
< ul>
< li> 李祥 li>
< li> 张三 li>
< li> 王五 li>
ul>
body>
(3):nth-child(n) {} 第n项
< style>
li:nth-child(2) {
color : red;
}
style>
< body>
< ul>
< li> 李祥 li>
< li> 张三 li>
< li> 王五 li>
ul>
body>
(4):nth-child(2n+1){} 奇数项
< style>
li:nth-child(2n+1) {
color : red;
}
style>
< body>
< ul>
< li> 李祥 li>
< li> 张三 li>
< li> 王五 li>
ul>
body>
(5):nth-child(2n) {} 偶数项
< style>
li:nth-child(2n) {
color : red;
}
style>
< body>
< ul>
< li> 李祥 li>
< li> 张三 li>
< li> 王五 li>
ul>
body>
(6):not() 否定伪类 除了第n项
< style>
li:not(nth-child(2n)) {
color : red;
}
style>
< body>
< ul>
< li> 李祥 li>
< li> 张三 li>
< li> 王五 li>
ul>
body>
(7)::first-letter 第一个
< style>
p::first-letter {
color : red;
}
style>
< body>
< p>
我是李祥。< br/>
我来自中国。< br/>
我喜欢编程。
p>
body>
(8)::first-line 第一行 只能用于块级元素
< style>
p::first-line {
color : red;
}
style>
< body>
< p>
我是李祥。< br/>
我来自中国。< br/>
我喜欢编程。
p>
body>
(9)::before 在开始位置加入内容
< style>
p::before {
content : '开头' ;
color : red;
}
style>
< body>
< p>
我是李祥。< br/>
我来自中国。< br/>
我喜欢编程。
p>
body>
(10)::after 在结束位置加入内容
< style>
p::after {
content : '结尾' ;
color : red;
}
style>
< body>
< p>
我是李祥。< br/>
我来自中国。< br/>
我喜欢编程。
p>
body>
2.5.CSS基本概念之盒⼦模型
(1)什么是盒⼦模型
在CSS⾥⾯,所有的HTML元素你都可以看成是⼀个盒⼦
(2)盒⼦的内容(content)
(3)盒⼦的内边距(padding)
padding-left : 10px //左边距10px
padding-top : 10px //上边距10px
padding-right : 10px //右边距10px
padding-bottom : 10px //下边距10%,相对于父级元素的width
padding : 10px 10px 10px 10% //等同于上面四行 百分比是对应父标签的大小
padding : 5px 10px //上下边距5px、左右边距10px
padding : 5px 10px 20px //上边距 左右边距 下边距
padding : 10px //上下左右边距10px
(4)盒⼦的边框(border)
border-left : 3px solid #000 //左边距10px dotted dashed
border-top : 3px solid #000 //上边距10px
border-right : 3px solid #000 //右边距10px
border-bottom : 3px solid #000 //下边距10%,相对于父级元素的width
border : 3px solid #000 //等同于上面四行
(5)盒⼦的外边距(margin)
margin-left : 10px //左边距10px
margin-top : 10px //上边距10px
margin-right : 10px //右边距10px
margin-bottom : 10% //下边距10%,相对于父级元素的width
margin : 10px 10px 10px 10% //等同于上面四行
margin : 5px 10px //上下边距5px、左右边距10px
margin : 10px //上下左右边距10px
(6)盒子怪异模型
boxWidth=contentWidth
box-sizing : border-box //声明
boxWidth=contentWidth+border+padding
(7)外边距折叠
上下两个兄弟盒子的margin都为正取大,都为负取小,一正一负相加
父子元素盒子的margin(假设没有内边距或边框把外边距分隔开),也会合并;
只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并
解决父子边距合并:
父元素 {
overflow : auto;
}
父元素::before {
display : table;
content : "" ;
}
2.6.CSS中的常⽤属性
(1)盒⼦的位置和⼤⼩
宽度 width : ⻓度|百分⽐|auto
⾼度 height
边界 margin padding 上右下左|上下左右
浮动:float
定位:position
弹性布局:flex
盒⼦内容超出部分:overflow:hidden | scroll | auto
(2)外观,⻛格
background-image:属性设置一个或多个背景图像
background-repeat:属性设置如何平铺背景图像
background-size:属性规定背景图像的尺寸
background-position:属性设置背景图像的起始位置
background-color:属性设置元素的背景颜色
(3)⽂字属性
字体⼤⼩:font-size
是否加粗:font-weight
是不是斜体:font-style
字体是什么:font-family
3.CSS进阶之布局定位
3.1.CSS中布局前置知识
(1)正常元素怎么布局
默认,⼀个块级元素的内容宽度就是其⽗元素的100%,他的⾼度和其内容⾼度⼀致
⾏内元素它的宽度和⾼度都是根据内容决定的(⽆法设置⾏内元素的宽⾼)
可设置display属性,定义元素的类型(css3定义布局)
例如:
标签,行级元素
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
span {
width : 20px;
height : 20px;
}
style>
head>
< body>
< span> 我叫李祥。 span> 我是一名IT工程师。
body>
即使我们给他设置了高宽的大小,也没有显示。
想要让span标签变成块级元素,需设置display属性。
span {
width : 100px;
height : 100px;
display : block;
}
(2)元素之间⼜是如何相互影响的呢
正常的⽂档布局流
每个块级元素会在上个元素下⾯另起⼀⾏
⾏内元素不会另起⼀⾏
3.2.CSS中的float布局
使用浮动
float: none; //默认值,元素不浮动
float: left; //元素像左浮动
float: right; //元素像右浮动
特点:
浮动元素会脱离文档流,不再占据文档流空间
浮动元素彼此之间是从左往右排列,宽度超过一行自动换行
在浮动元素前面元素不浮动时,浮动元素无法上移
块级元素和行内元素浮动之后都变成行内块级元素
浮动元素不会盖住文字,可以设置文字环绕效果
清除浮动
clear:both;
content:'' ;
display:block;
(1)两个div,让下方的div瓢到上方的右边
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.div1 {
width : 100px;
height : 100px;
background-color : blue;
float : left;
}
.div2 {
width : 100px;
height : 100px;
background-color : brown;
float : left;
}
style>
head>
< body>
< div class = " div1" > div>
< div class = " div2" > div>
body>
html>
(2)两个div,让下方的div瓢到上方的右边
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.div1 {
width : 100px;
height : 100px;
background-color : blue;
float : right;
}
.div2 {
width : 200px;
height : 200px;
background-color : brown;
float : right;
}
style>
head>
< body>
< div class = " div1" > div>
< div class = " div2" > div>
body>
html>
(3)两个div实现图层叠加的效果
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.div1 {
width : 100px;
height : 100px;
background-color : blue;
float : left;
}
.div2 {
width : 200px;
height : 200px;
background-color : brown;
}
style>
head>
< body>
< div class = " div1" > div>
< div class = " div2" > div>
body>
html>
3.3.CSS中的flex布局
W3C提出了一种新的方案—Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。
Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
测试代码:
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.f {
width : 400px;
height : 400px;
background-color : blanchedalmond;
}
.a1 {
width : 100px;
height : 100px;
background-color : gold;
}
.a2 {
width : 100px;
height : 100px;
background-color : gray;
}
.a3 {
width : 100px;
height : 100px;
background-color : aqua;
}
style>
head>
< body>
< div class = " f" >
< div class = " a1" > div>
< div class = " a2" > div>
< div class = " a3" > div>
div>
body>
html>
父元素容器的属性
(1)flex-direction属性
flex-direction属性有4个值:
row(默认值) :主轴为水平方向,起点在左端 (项目从左往右排列)
row-reverse :主轴为水平方向,起点在右端 (项目从右往左排列)
column :主轴为垂直方向,起点在上沿 (项目从上往下排列)
column-reverse :主轴为垂直方向,起点在下沿 (项目从下往上排列)
flex-direction : row | row-reverse | column | column-reverse;
(2)flex-wrap属性
默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
flex-wrap属性有3个值:
nowrap(默认) :不换行(列)。
wrap :主轴为横向时:从上到下换行。主轴为纵向时:从左到右换列。
wrap-reverse :主轴为横向时:从下到上换行。主轴为纵向时:从右到左换列。
测试代码:
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.f {
width : 400px;
height : 400px;
background-color : blanchedalmond;
display : flex;
flex-direction : row;
}
.a1 {
width : 100px;
height : 100px;
background-color : gold;
}
.a2 {
width : 100px;
height : 100px;
background-color : gray;
}
.a3 {
width : 100px;
height : 100px;
background-color : aqua;
}
.a4 {
width : 100px;
height : 100px;
background-color : green;
}
.a5 {
width : 100px;
height : 100px;
background-color : red;
}
.a6 {
width : 100px;
height : 100px;
background-color : silver;
}
.a7 {
width : 100px;
height : 100px;
background-color : hotpink;
}
style>
head>
< body>
< div class = " f" >
< div class = " a1" > a1 div>
< div class = " a2" > a2 div>
< div class = " a3" > a3 div>
< div class = " a4" > a4 div>
< div class = " a5" > a5 div>
< div class = " a6" > a6 div>
< div class = " a7" > a7 div>
div>
body>
html>
flex-wrap : nowrap | wrap | wrap-reverse;
(3)flex-flow属性
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
flex-flow : ;
(4)justify-content属性
ustify-content属性定义了项目在主轴上的对齐方式。
justify-content属性有5个值:
flex-start(默认) :与主轴的起点对齐。
flex-end :与主轴的终点对齐。
center :与主轴的中点对齐。
space-between :两端对齐主轴的起点与终点,项目之间的间隔都相等。
space-around :每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
justify-content : flex-start | flex-end | center | space-between | space-around;
(5)align-items属性
align-items属性定义项目在交叉轴上如何对齐。纵向交叉轴始终自上而下,横向交叉轴始终自左而右。
align-items属性有5个值:
flex-start :交叉轴的起点对齐。
flex-end :交叉轴的终点对齐。
center :交叉轴的中点对齐。
baseline : 项目的第一行文字的基线对齐。
stretch(默认值) :如果项目未设置高度或设为auto,项目将占满整个容器的高度。
align-items : flex-start | flex-end | center | baseline | stretch;
(6)align-content属性
align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
align-content属性有6个值:
flex-start :与交叉轴的起点对齐。
flex-end :与交叉轴的终点对齐。
center :与交叉轴的中点对齐。
space-between :与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around :每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值) :主轴线占满整个交叉轴。
子元素容器的属性
(1)order属性
order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
order : -10 | -1 | 0 | 1 | 10;
(2)flex-grow属性
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
flex-grow : 0 | 1 | 2 | 3;
(3)flex-basis属性
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间 (main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
flex-basis : | auto;
(4)flex属性
flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
flex : 0 1 auto;
选择float布局 or flex布局?
推荐是使用flex布局,flex布局易用,布局全面。float的创建初衷只是为了达到文字环绕的效果,另外需要清除浮动。现在几乎所有公司的产品使用场景都在浏览器ie9以上。
3.4.CSS中的position定位
(1)static:默认值,静态定位,表示没有定位,元素会按照正常的位置显示,此时 top、bottom、left 和 right 4 个定位属性也不会被应用。 (2)relative:相对定位,即相对于元素的正常位置进行定位,您可以通过 top、right、bottom、left 这 4 个属性来设置元素相对于正常位置的偏移量,在此过程中不会对其它元素造成影响。
(3)absolute:绝对定位,相对于第一个非 static 定位的父级元素进行定位,可以通过 top、right、bottom、left 这 4 个属性来设置元素相对于父级元素位置的偏移量。如果没有满足条件的父级元素,则会相对于浏览器窗口来进行定位。使用绝对定位的元素不会对其它元素造成影响。 (4)fixed:固定定位,相对于浏览器的创建进行定位,可以使用 top、right、bottom、left 这 4 个属性来定义元素相对于浏览器窗口的位置。使用固定定位的元素无论如何滚动浏览器窗口元素的位置都是固定不变的。
(5)sticky:粘性定位,它是 relative 和 fixed 的结合体,能够实线类似吸附的效果,当滚动页面时它的效果与 relative 相同,当要滚动到屏幕之外时则会自动变成 fixed 的效果。
测试代码:
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.a1 {
width : 200px;
height : 200px;
background-color : red;
}
.a2 {
width : 200px;
height : 200px;
background-color : green;
}
.a3 {
width : 200px;
height : 200px;
background-color : blue;
}
.a22 {
width : 50px;
height : 50px;
background-color : black;
}
style>
head>
< body>
< div class = " a1" > div>
< div class = " a2" >
< div class = " a22" > div>
div>
< div class = " a3" > div>
body>
html>
(1)让黑块跑到绿块的最右边
(2)设置一个悬浮的窗口
(3)粘性定位案例
3.5.CSS之三栏布局实现
(1)float实现
< head>
< meta charset = " UTF-8" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
* {
margin : 0;
padding : 0;
}
.left {
width : 200px;
height : 300px;
background-color : red;
float : left;
}
.right {
width : 200px;
height : 300px;
background-color : blue;
float : right;
}
.center {
height : 300px;
background-color : green;
margin : 0 200px;
}
style>
head>
< body>
< div class = " father" >
< div class = " left" > div>
< div class = " right" > div>
< div class = " center" > div>
div>
body>
html>
(2)position实现
< head>
< meta charset = " UTF-8" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
* {
margin : 0;
padding : 0;
}
.left {
width : 200px;
height : 300px;
background-color : red;
position : absolute;
left : 0;
}
.right {
width : 200px;
height : 300px;
background-color : blue;
position : absolute;
right : 0;
}
.center {
height : 300px;
background-color : green;
margin : 0 200px;
}
style>
head>
< body>
< div class = " father" >
< div class = " left" > div>
< div class = " right" > div>
< div class = " center" > div>
div>
body>
html>
(3)flex实现
< head>
< meta charset = " UTF-8" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
* {
margin : 0;
padding : 0;
}
.left {
width : 200px;
height : 300px;
background-color : red;
}
.right {
width : 200px;
height : 300px;
background-color : blue;
}
.center {
flex : 1;
height : 300px;
background-color : green;
}
.father {
display : flex;
}
style>
head>
< body>
< div class = " father" >
< div class = " left" > div>
< div class = " center" > div>
< div class = " right" > div>
div>
body>
html>
效果演示:
3.6.CSS之⽔平垂直居中
(1)⾏内块元素
通过line-height、text-align: center 实现。
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
span {
width : 200px;
height : 200px;
background-color : cadetblue;
display : inline-block;
text-align : center;
line-height : 200px;
font-size : 30px;
}
style>
< body>
< span>
李祥
span>
body>
html>
通过display: flex、 justify-content: center、align-items: center 实现。
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
span {
width : 200px;
height : 200px;
background-color : cadetblue;
display : flex;
justify-content : center;
align-items : center;
font-size : 30px;
}
style>
< body>
< span>
李祥
span>
body>
html>
运行效果:
(2)块级元素
position + transform实现
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.a1 {
width : 500px;
height : 500px;
background-color : cadetblue;
position : relative;
}
.a2 {
width : 100px;
height : 100px;
background-color : brown;
position : absolute;
top : 50%;
left : 50%;
transform : translate ( -50%, -50%) ;
}
style>
head>
< body>
< div class = " a1" >
< div class = " a2" > div>
div>
body>
html>
flex实现
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
< style>
.a1 {
width : 500px;
height : 500px;
background-color : cadetblue;
display : flex;
justify-content : center;
align-items : center;
}
.a2 {
width : 100px;
height : 100px;
background-color : brown;
}
style>
head>
< body>
< div class = " a1" >
< div class = " a2" > div>
div>
body>
html>
运行效果:
3.7.CSS⾼级知识点之BFC
定义
块格式化上下⽂ (Block Formatting Context,BFC)是Web⻚⾯的可视化CSS渲染的⼀部分,是块盒⼦的布局过程发⽣的区域,也是浮动元素与其他元素交互的区域。
即:形成了⼀块封闭的区域,能检测到区域内脱离⽂档流的元素
特点
css中隐含的属性,开启后不会被浮动的元素覆盖
BFC元素可以包含浮动元素
BFC元素的子元素和父元素外边距不重叠
开启(都会有副作用)
设置元素浮动 float:left
设置为行内块元素 display:inline-block
overflow:hidden(推荐)
作⽤
清除浮动带来的影响
解决边距塌陷问题(外边距折叠(Margin collapsing)也只会发⽣在属于同⼀BFC的块级元素之间)
4.CSS3常用属性讲解
4.1. CSS3边框样式
(1)圆角边框
border-radius:为元素添加圆角边框
四个值时:border-radius:30px 20px 30px 10px;(每个数值表示的是圆角的半径值,将每个角的水平和垂直半径都设置为对应的数值) 左上(10px),右上(20px),右下(30px),左下(10px)
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
border : 3px solid red;
border-radius : 10px;
}
style>
< body>
< div> div>
body>
html>
运行效果:
(2)盒阴影 box-shadow 属性接受值最多由五个不同的部分组成。
box-shadow: offset-x offset-y blur spread color position;
对象选择器 {box-shadow:X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色 投影方式 }
不像其它的属性,比如 border,它们的接受值可以被拆分为一系列子属性,box-shadow 属性没有子属性。这意味着记住这些组成部分的顺序更加重要,尤其是那些长度值。
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background-color : cadetblue;
box-shadow : 2px 2px 10px black;
}
style>
< body>
< div> div>
body>
html>
(3)边界图片
border-image属性可以通过一些简单的规则,将一副图像划分为 9 个单独的部分,浏览器会自动使用相应的部分来替换边框的默认样式。
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
border : 20px solid red;
border-image : url ( 'https://gw.alicdn.com/imgextra/i3/O1CN01iyYdem1GQd1yGgA0a_!!6000000000617-0-tps-2500-600.jpg' ) ;
}
style>
< body>
< div> div>
body>
html>
4.2.CSS3渐变样式
linear-gradient() 函数用于创建一个线性渐变的图像。
语法: background: linear-gradient(direction, color-stop1, color-stop2, …);
direction: 用角度值指定渐变的方向。
方向值:常用的是to top,to bottom,to left,to right,to right top等等。
角度值:常用的是0deg、180deg等等。
coler: 使用关键字red、rgba等颜色值(透明也可以设置)。
stop: 是这个颜色块终止位置,换句话说就是这块颜色占的区域。
(1)从上到下渐变(默认情况下)
background: linear-gradient(#e66465, #9198e5);
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : linear-gradient ( #e66465, #9198e5) ;
}
style>
< body>
< div> div>
body>
html>
(2)从左到右渐变
background: linear-gradient(to right, red , yellow);
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : linear-gradient ( to right, red , yellow) ;
}
style>
< body>
< div> div>
body>
html>
(3)对角渐变
background: linear-gradient(to bottom right, red, yellow);
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : linear-gradient ( to bottom, red , yellow) ;
}
style>
< body>
< div> div>
body>
html>
(4)角度从上到下
background: linear-gradient(180deg, red, yellow);
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : linear-gradient ( 180deg, red, yellow) ;
}
style>
< body>
< div> div>
body>
html>
(5)角度从左到右
background: linear-gradient(90deg, red, yellow);
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : linear-gradient ( 90deg, red, yellow) ;
}
style>
< body>
< div> div>
body>
html>
(6)透明度设置
background: linear-gradient(rgba(255,0,0,0), rgba(255,0,0,1));
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : linear-gradient ( rgba ( 255, 0, 0, 0) , rgba ( 255, 0, 0, 1) ) ;
}
style>
< body>
< div> div>
body>
html>
(7)设置重复的渐变区域
background: repeating-linear-gradient(red, yellow 10%, green 20%);
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 200px;
height : 200px;
margin : 0 auto;
background : repeating-linear-gradient ( red, yellow 10%, green 20%) ;
}
style>
< body>
< div> div>
body>
html>
4.3.CSS3文本效果
(1)文本阴影
text-shadow: 5px 5px 5px #FF0000;
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
span {
font-size : 50px;
text-shadow : 5px 5px 5px #FF0000;
}
style>
< body>
< span>
李祥
span>
body>
html>
(2)文本溢出超过1行省略
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 100px;
height : 100px;
font-size : 20px;
overflow : hidden;
white-space : nowrap;
text-overflow : ellipsis;
}
style>
< body>
< div>
晚风吹人醒,万事藏于心
div>
body>
html>
(3)文本溢出超过2行省略
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2 ;
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
div {
width : 100px;
height : 100px;
font-size : 20px;
overflow : hidden;
text-overflow : ellipsis;
display : -webkit-box;
-webkit-box-orient : vertical;
-webkit-line-clamp : 2;
}
style>
< body>
< div>
晚风吹人醒,万事藏于心
div>
body>
html>
4.4.CSS3网格布局
网格布局,顾名思义就是像网一样有一个个格子一样的布局。在一个容器里面,我们可以切割成很多行很多列,形成一个个网格,从而对这些网格进行规则性的排序,使用,达到我们复杂的页面布局效果。
Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。
类似哔哩哔哩首页这种网格状的排版。
直接上代码,采用Grid实现。
DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta http-equiv = " X-UA-Compatible" content = " IE=edge" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> Document title>
head>
< style>
.box {
width : 800px;
height : 400px;
background-color : cadetblue;
display : grid;
grid-template-columns : 25% 25% 25% 25%;
grid-template-rows : 50% 50%;
}
.child {
width : 200px;
height : 200px;
background-color : darkgoldenrod;
border : 1px solid yellow;
box-sizing : border-box;
}
style>
< body>
< div class = " box" >
< div class = " child" > div>
< div class = " child" > div>
< div class = " child" > div>
< div class = " child" > div>
< div class = " child" > div>
< div class = " child" > div>
< div class = " child" > div>
< div class = " child" > div>
div>
body>
html>
运行效果:
OK,至此Html+CSS的知识点就整理完成啦,觉得博主写的不错的,记得给个三连哦!
你可能感兴趣的:(前端,前端,html,css)
spring boot基于知识图谱的阿克苏市旅游管理系统python-计算机毕业设计
QQ1963288475
spring boot 知识图谱 旅游 python vue.js django flask
目录功能和技术介绍具体实现截图开发核心技术:开发环境开发步骤编译运行核心代码部分展示系统设计详细视频演示可行性论证软件测试源码获取功能和技术介绍该系统基于浏览器的方式进行访问,采用springboot集成快速开发框架,前端使用vue方式,基于es5的语法,开发工具IntelliJIDEAx64,因为该开发工具,内嵌了Tomcat服务运行机制,可不用单独下载Tomcatserver服务器。由于考虑到
【OpenTiny调研征集】共创技术未来,分享您的声音!
前端vue.js开源
欢迎参与2025年OpenTiny开源社区用户调研征集调研背景随着OpenTiny开源项目的不断发展,我们一直致力于为开发者提供高质量的Web前端开发解决方案。为了更好地满足用户需求,提升项目的实用性和易用性,我们决定发起一项用户调研活动,诚挚邀请您参与。调研目的了解用户需求:收集您在使用OpenTiny开源项目过程中的需求、问题和建议,以便我们更好地改进和优化。提升用户体验:通过您的反馈,我们将
Android arcgis加载在线底图
Angie洛林
android arcgis
我整理的一些关于【信息系统】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://edu.51cto.com/mic-position/757.html在Android中使用ArcGIS加载在线底图ArcGIS是Esri提供的一套强大的地理信息系统(GIS)解决方案,支持多种平台,包括Android。本文将介绍如何在Android应用中使用ArcGIS加载在线底图,并配有相关代码示
cesium(vue)一些面试问题(包含Three.js)
GIS瞧葩菜
vue.js javascript cesium
1.在不同的应用场景和技术栈中,模型加载方法和格式有所不同,下面主要从Web前端三维场景(使用Three.js和cesium)使用Three.js加载模型常见模型格式及加载方法GLTF/GLB格式格式特点:GLTF(GraphicsLibraryTransmissionFormat)是一种开放的、基于JSON的三维模型传输格式,GLB是其二进制版本。它们具有文件小、加载快、支持动画、材质和骨骼等优
CSS中五种定位方式(position)对比分析
七公子77
css css 前端
在CSS中,定位方式(position)决定了元素如何相对于其参照物进行定位,同时影响文档流的布局。以下是五种定位方式的对比、参照物说明及代码示例:1.position:static(默认定位)参照物:无,元素位于默认文档流中。文档流:元素按照HTML顺序自然排列。特点:top、right、bottom、left和z-index属性无效。示例:Box1Box2.box{width:100px;he
【vue】Mammoth.js的使用:将.docx转换成HTML
暴富暴富暴富啦啦啦
1024程序员节
mammoth.convertToHtml(input,options):把源文档转换为HTML文档mammoth.convertToMarkdown(input,options):把源文档转换为Markdown文档。mammoth.extractRawText(input):提取文档的原始文本。这将忽略文档中的所有格式。每个段落后跟两个换行符。npminstallelement-uimammot
探索 TypeScript Redux:构建大规模JavaScript应用的终极指南
柳旖岭
探索TypeScriptRedux:构建大规模JavaScript应用的终极指南去发现同类优质开源项目:https://gitcode.com/在当今快速发展的前端开发领域中,组合正确工具集来应对复杂性和扩展性挑战至关重要。今天,我们将深入了解一个令人兴奋的开源项目——TypeScriptRedux,它结合了TypeScript、JSPM、typings、React和Redux的强大功能,为开发者
单细胞轨迹分析-monocle包的使用
探序基因
r语言
探序基因肿瘤研究院整理安装:monocle源码下载:https://www.bioconductor.org/packages/release/bioc/html/monocle.htmlR版本,4.2.0BiocManager::install("monocle")不过在安装过程中还是报错了:Warning:无法在https://bioconductor.org/packages/3.15/bi
前端导出word文件—包含canvas(echarts图表)
Liuer_Qin
js canvas echarts echarts 前端 javascript
一、使用的插件html-docx-js二、整体思路因为canvas是运行在内存中的,所以不能简单的通过dom获取canvas图片,需要手动的先将canvas转为image。三、实现先克隆要下载的DOM的副本。因为canvas是运行在内存中的,所以也不能通过cloneNode方法克隆下来(克隆下来是空的)。我们这里将原DOM中的canvas转成图片,然后插入到副本的对应位置,这样操作不会影响原DOM
揭秘 CSS Houdini:用浏览器魔法解锁 CSS 的终极潜力
寒鸦xxx
css houdini 前端
一、为什么我们需要CSSHoudini?1.1传统CSS的困境当我们试图用CSS实现一个波浪形边框时,通常会经历这样的挣扎:/*传统实现方案*/.wave-border{position:relative;overflow:hidden;}.wave-border::after{content:'';position:absolute;/*需要复杂计算和多个伪元素拼接*/}这种实现方式存在三个致命
动态蛇形卷积(DySnakeConv)在YOLOv8检测头中的应用与优化-分割性能的提升【YOLOv8】
步入烟尘
YOLO 动态蛇形卷积 DySnakeConv
本专栏专为AI视觉领域的爱好者和从业者打造。涵盖分类、检测、分割、追踪等多项技术,带你从入门到精通!后续更有实战项目,助你轻松应对面试挑战!立即订阅,开启你的YOLOv8之旅!专栏订阅地址:https://blog.csdn.net/mrdeam/category_12804295.html文章目录动态蛇形卷积(DySnakeConv)在YOLOv8检测头中的应用与优化-分割性能的提升【YOLOv
微信支付-扫码支付全流程
自娱自乐22
thinkphp php 微信扫码支付
微信支付官方文档:`https://pay.weixin.qq.com/wiki/doc/api/index.html`微信支付分为2种模式:【模式一】:商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。用户扫码后,微信支付系统将productid和用户唯一标识(openid)回调商户后台系统(需要设置支付回调URL),商户后台系统根据pr
mac+php5.3的docker-compose.yml分享
自娱自乐22
docker
version:'3'services:nginx:image:nginx:latestcontainer_name:nginx-composevolumes:-./wwwroot:/usr/share/nginx/html:rw-./nginx/nginx/:/etc/nginx/:rw-./log/nginx:/var/log/nginx:rwrestart:alwayslinks:-phpp
Python+Playwright常用元素定位方法
HAMYHF
python 功能测试
CSSselector选择器在CSS中,定位元素主要通过选择器完成,以下是几种常见的CSS选择器定位方法:标签选择器(element):直接使用HTML元素名称来定位,例如p会选择所有段落元素。属性选择器(attribute):选择所有具有指定属性的元素,无论该属性的值是什么。例如,[title]会选择所有包含title属性的元素。选择具有指定属性,并且该属性值完全等于给定值的元素。例如,[typ
JavaScript网页设计案例:打造交互式个人简历网站
程序媛小果
前端 javascript 开发语言 ecmascript
在当今数字化时代,个人简历不再局限于纸质文档,而是越来越多地以网页形式呈现。JavaScript作为一种强大的客户端脚本语言,为网页设计提供了无限可能,使得网页不仅仅是静态的信息展示,而是具有丰富交互性的平台。本文将通过一个案例,展示如何使用HTML、CSS和JavaScript来设计一个交互式的个人简历网站。1.项目概述本案例的目标是创建一个个人简历网站,它不仅展示个人信息、工作经历、教育背景和
CSS 滚动条样式修改(详细)
mr_cmx
css css3 html
1、滚动条整体部分使用::-webkit-scrollbar示例:.container::-webkit-scrollbar{width:20px;//修改滚动条宽度}2、滚动条中的滑块使用::-webkit-scrollbar-thumb示例:.container::-webkit-scrollbar-thumb{border-radius:8px;box-shadow:inset005pxrg
使用Odoo Shell卸载模块
odoo中国
odoo odoo 开源软件 erp
使用OdooShell卸载模块我们在Odoo使用过程中,因为模块安装错误或者前端错误等导致odoo无法通过界面登录,这时候你可以使用OdooShell来卸载模块。OdooShell是一个交互式Pythonshell,允许你直接与Odoo数据库和模型进行交互。以下是使用OdooShell卸载模块的详细步骤:步骤1:启动OdooShell要启动OdooShell,你需要在终端中运行以下命令。确保你已经
基于 Spring Boot 的社区居民健康管理系统部署说明书
小星袁
毕业设计原文 spring boot 后端 java
目录1系统概述2准备资料3系统安装与部署3.1数据库部署3.1.1MySQL的部署3.1.2Navicat的部署3.2服务器部署3.3客户端部署4系统配置与优化5其他基于SpringBoot的社区居民健康管理系统部署说明书1系统概述本系统主要运用了SpringBoot框架,前端页面的设计主要依托Vue框架来构建,实现丰富且交互性强的用户界面,后台管理功能则采用SpringBoot框架与MySQL数
2025年全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
白帽安全-黑客4148
安全 web安全 网络 网络安全 CTF
目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15天)4.3、后期五、CTF学习资源5.1、CTF赛题复现平台5.
2025年全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
白帽安全-黑客4148
网络安全 web安全 linux 密码学 CTF
目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15天)4.3、后期五、CTF学习资源5.1、CTF赛题复现平台5.
dreamweaver html语言,Dreamweaver网页设计与制作(HTML+CSS+JavaScript)
weixin_39979245
dreamweaver html语言
Dreamweaver网页设计与制作(HTML+CSS+JavaScript)编辑锁定讨论上传视频本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!《Dreamweaver网页设计与制作(HTML+CSS+JavaScript)》是2014年清华大学出版社出版的图书。Dreamweaver网页设计与制作(HTML+CSS+JavaScript)图书详细信息编辑ISBN:978
html 5中css的含义,HTML 5+CSS+JavaScript网页设计与制作
律保阁-Michael
html 5中css的含义
HTML5+CSS+JavaScript网页设计与制作编辑锁定讨论上传视频《HTML5+CSS+JavaScript网页设计与制作》是2019年4月清华大学出版社出版的图书,作者是彭进香、张茂红、王玉娟、叶娟、孙秀娟、万幸、刘英。书名HTML5+CSS+JavaScript网页设计与制作作者彭进香张茂红王玉娟叶娟作者孙秀娟展开作者孙秀娟万幸刘英收起出版社清华大学出版社出版时间2019年4月定价48
html+css+javascript实用详解,HTML+CSS+JavaScript 课程标准
vvv666s
②学会运用HTML语言中的标记设置颜色、文本格式和列表;熟练掌握颜色值的配置和背景图案的设置方法,熟练掌握字符、链接颜色的设置方法;③掌握在网页中添加CSS、嵌入图像、声音、多媒体信息的方法;④熟练掌握表格的使用方法,学会利用表格设布局网页;掌握框架制作网页的方法,会使用框架设计网页;掌握制作表单的方法,会利用表单建立交互式页面;⑤掌握JavaScript语言的语法;⑥掌握在HTML语言代码中嵌入
EDA事件驱动架构 领域事件 Event Sourcing
talentluke
架构设计
摘自http://www.jdon.com/eda.htmlEDA(Event-drivenarchitecture)是以事件为核心,与SOA以服务为核心有本质区别,是状态模式的延伸到架构上,事件是触发状态变化的根源,事件是介于业务和技术两者之间的概念,用户界面是事件主要发生来源,事件也可以来源其他系统或模块,通过事件可以实现系统或组件之间松耦合。EDA可以实现SOA服务之间的调用,事件也可以用于
前端性能优化——如何提高页面加载速度?
忘川...
前端 性能优化 html
1.将样式表放在头部首先说明一下,将样式表放在头部对于实际页面加载的时间并不能造成太大影响,但是这会减少页面首屏出现的时间,使页面内容逐步呈现,改善用户体验,防止“白屏”。我们总是希望页面能够尽快显示内容,为用户提供可视化的回馈,这对网速慢的用户来说是很重要的。将样式表放在文档底部会阻止浏览器中的内容逐步出现。为了避免当样式变化时重绘页面元素,浏览器会阻塞内容逐步呈现,造成“白屏”。这源自浏览器的
前端开发入门指南:HTML、CSS和JavaScript基础知识
方向感超强的
javascript css html 前端
引言:大家好,我是一名简单的前端开发爱好者,对于网页设计和用户体验的追求让我深深着迷。在本篇文章中,我将带领大家探索前端开发的基础知识,涵盖HTML、CSS和JavaScript。如果你对这个领域感兴趣,或者想要了解如何开始学习前端开发,那么这篇文章将为你提供一个良好的起点。1.前端开发概述在我们深入了解前端开发的细节之前,让我们先了解一下前端开发的定义和作用。简而言之,前端开发涉及构建用户直接与
前端504错误分析
ox0080
# 北漂+滴滴出行 Web VIP 激励 前端
前端出现504错误(网关超时)通常是由于代理服务器未能及时从上游服务获取响应。以下是详细分析步骤和解决方案:1.确认错误来源504含义:代理服务器(如Nginx、Apache)在等待后端服务响应时超时。常见架构:前端→代理服务器→后端服务,问题通常出在代理与后端之间。2.排查步骤(1)检查后端服务状态确认服务是否运行:通过日志或监控工具(如systemctlstatus,KubernetesPod
网页中加载 SVG 的七大方式
前端熊猫
Svg javascript html svg vue
一、直接使用标签加载外部SVG文件优点:简单易用:与加载其他图片格式(如PNG、JPEG)相同。浏览器支持良好:现代浏览器普遍支持。可缓存:SVG文件可以被浏览器缓存,减少重复请求。缺点:无法直接操作SVG内部元素:如果需要对SVG内部的元素进行交互或样式修改,这种方法不适用。适用场景:静态图像展示:仅需要展示SVG图像,不需要与之交互。二、将SVG作为CSS背景图片.icon{width:100
jQuery UI CSS 框架 API
lly202406
开发语言
jQueryUICSS框架API概述jQueryUI是一个基于jQuery的用户界面和交互库,它提供了一套丰富的交互组件和视觉效果,旨在帮助开发者快速构建具有吸引力和互动性的网页应用。jQueryUICSS框架API是jQueryUI的一部分,它允许开发者通过简单的CSS类来控制UI组件的样式和外观。本文将详细介绍jQueryUICSS框架API的使用方法、常用类和功能,帮助开发者更好地利用这一工
部署前端项目2
augenstern416
前端
前端项目的部署是将开发完成的前端代码发布到服务器或云平台,使其能够通过互联网访问。以下是前端项目部署的常见步骤和工具:1.准备工作在部署之前,确保项目已经完成以下步骤:代码优化:压缩JavaScript、CSS和图片文件,减少文件体积。环境配置:区分开发环境和生产环境(如API地址、环境变量等)。测试:确保项目在本地测试通过,没有明显Bug。2.部署流程1.构建项目大多数前端项目(如React、V
面向对象面向过程
3213213333332132
java
面向对象:把要完成的一件事,通过对象间的协作实现。
面向过程:把要完成的一件事,通过循序依次调用各个模块实现。
我把大象装进冰箱这件事为例,用面向对象和面向过程实现,都是用java代码完成。
1、面向对象
package bigDemo.ObjectOriented;
/**
* 大象类
*
* @Description
* @author FuJian
Java Hotspot: Remove the Permanent Generation
bookjovi
HotSpot
openjdk上关于hotspot将移除永久带的描述非常详细,http://openjdk.java.net/jeps/122
JEP 122: Remove the Permanent Generation
Author Jon Masamitsu
Organization Oracle
Created 2010/8/15
Updated 2011/
正则表达式向前查找向后查找,环绕或零宽断言
dcj3sjt126com
正则表达式
向前查找和向后查找
1. 向前查找:根据要匹配的字符序列后面存在一个特定的字符序列(肯定式向前查找)或不存在一个特定的序列(否定式向前查找)来决定是否匹配。.NET将向前查找称之为零宽度向前查找断言。
对于向前查找,出现在指定项之后的字符序列不会被正则表达式引擎返回。
2. 向后查找:一个要匹配的字符序列前面有或者没有指定的
BaseDao
171815164
seda
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BaseDao {
public Conn
Ant标签详解--Java命令
g21121
Java命令
这一篇主要介绍与java相关标签的使用 终于开始重头戏了,Java部分是我们关注的重点也是项目中用处最多的部分。
1
[简单]代码片段_电梯数字排列
53873039oycg
代码
今天看电梯数字排列是9 18 26这样呈倒N排列的,写了个类似的打印例子,如下:
import java.util.Arrays;
public class 电梯数字排列_S3_Test {
public static void main(S
Hessian原理
云端月影
hessian原理
Hessian 原理分析
一. 远程通讯协议的基本原理
网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http 、 tcp 、 udp 等等, http 、 tcp 、 udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协
区分Activity的四种加载模式----以及Intent的setFlags
aijuans
android
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。
这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。 加载模式分类及在哪里配置
Activity有四种加载模式:
standard
singleTop
hibernate几个核心API及其查询分析
antonyup_2006
html .net Hibernate xml 配置管理
(一) org.hibernate.cfg.Configuration类
读取配置文件并创建唯一的SessionFactory对象.(一般,程序初始化hibernate时创建.)
Configuration co
PL/SQL的流程控制
百合不是茶
oracle PL/SQL编程 循环控制
PL/SQL也是一门高级语言,所以流程控制是必须要有的,oracle数据库的pl/sql比sqlserver数据库要难,很多pl/sql中有的sqlserver里面没有
流程控制;
分支语句 if 条件 then 结果 else 结果 end if ;
条件语句 case when 条件 then 结果;
循环语句 loop
强大的Mockito测试框架
bijian1013
mockito 单元测试
一.自动生成Mock类 在需要Mock的属性上标记@Mock注解,然后@RunWith中配置Mockito的TestRunner或者在setUp()方法中显示调用MockitoAnnotations.initMocks(this);生成Mock类即可。二.自动注入Mock类到被测试类 &nbs
精通Oracle10编程SQL(11)开发子程序
bijian1013
oracle 数据库 plsql
/*
*开发子程序
*/
--子程序目是指被命名的PL/SQL块,这种块可以带有参数,可以在不同应用程序中多次调用
--PL/SQL有两种类型的子程序:过程和函数
--开发过程
--建立过程:不带任何参数
CREATE OR REPLACE PROCEDURE out_time
IS
BEGIN
DBMS_OUTPUT.put_line(systimestamp);
E
【EhCache一】EhCache版Hello World
bit1129
Hello world
本篇是EhCache系列的第一篇,总体介绍使用EhCache缓存进行CRUD的API的基本使用,更细节的内容包括EhCache源代码和设计、实现原理在接下来的文章中进行介绍
环境准备
1.新建Maven项目
2.添加EhCache的Maven依赖
<dependency>
<groupId>ne
学习EJB3基础知识笔记
白糖_
bean Hibernate jboss webservice ejb
最近项目进入系统测试阶段,全赖袁大虾领导有力,保持一周零bug记录,这也让自己腾出不少时间补充知识。花了两天时间把“传智播客EJB3.0”看完了,EJB基本的知识也有些了解,在这记录下EJB的部分知识,以供自己以后复习使用。
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基
angular.bootstrap
boyitech
AngularJS AngularJS API angular中文api
angular.bootstrap
描述:
手动初始化angular。
这个函数会自动检测创建的module有没有被加载多次,如果有则会在浏览器的控制台打出警告日志,并且不会再次加载。这样可以避免在程序运行过程中许多奇怪的问题发生。
使用方法: angular .
java-谷歌面试题-给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数
bylijinnan
java
public class SearchInShiftedArray {
/**
* 题目:给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数。
* 请在这个特殊数组中找出给定的整数。
* 解答:
* 其实就是“旋转数组”。旋转数组的最小元素见http://bylijinnan.iteye.com/bl
天使还是魔鬼?都是我们制造
ducklsl
生活 教育 情感
----------------------------剧透请原谅,有兴趣的朋友可以自己看看电影,互相讨论哦!!!
从厦门回来的动车上,无意中瞟到了书中推荐的几部关于儿童的电影。当然,这几部电影可能会另大家失望,并不是类似小鬼当家的电影,而是关于“坏小孩”的电影!
自己挑了两部先看了看,但是发现看完之后,心里久久不能平
[机器智能与生物]研究生物智能的问题
comsci
生物
我想,人的神经网络和苍蝇的神经网络,并没有本质的区别...就是大规模拓扑系统和中小规模拓扑分析的区别....
但是,如果去研究活体人类的神经网络和脑系统,可能会受到一些法律和道德方面的限制,而且研究结果也不一定可靠,那么希望从事生物神经网络研究的朋友,不如把
获取Android Device的信息
dai_lm
android
String phoneInfo = "PRODUCT: " + android.os.Build.PRODUCT;
phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;
phoneInfo += ", TAGS: " + android.os.Build.TAGS;
ph
最佳字符串匹配算法(Damerau-Levenshtein距离算法)的Java实现
datamachine
java 算法 字符串匹配
原文:http://www.javacodegeeks.com/2013/11/java-implementation-of-optimal-string-alignment.html------------------------------------------------------------------------------------------------------------
小学5年级英语单词背诵第一课
dcj3sjt126com
english word
long 长的
show 给...看,出示
mouth 口,嘴
write 写
use 用,使用
take 拿,带来
hand 手
clever 聪明的
often 经常
wash 洗
slow 慢的
house 房子
water 水
clean 清洁的
supper 晚餐
out 在外
face 脸,
macvim的使用实战
dcj3sjt126com
mac vim
macvim用的是mac里面的vim, 只不过是一个GUI的APP, 相当于一个壳
1. 下载macvim
https://code.google.com/p/macvim/
2. 了解macvim
:h vim的使用帮助信息
:h macvim
java二分法查找
蕃薯耀
java二分法查找 二分法 java二分法
java二分法查找
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 11:40:03 星期二
http:/
Spring Cache注解+Memcached
hanqunfeng
spring memcached
Spring3.1 Cache注解
依赖jar包:
<!-- simple-spring-memcached -->
<dependency>
<groupId>com.google.code.simple-spring-memcached</groupId>
<artifactId>simple-s
apache commons io包快速入门
jackyrong
apache commons
原文参考
http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html
Apache Commons IO 包绝对是好东西,地址在http://commons.apache.org/proper/commons-io/,下面用例子分别介绍:
1) 工具类
2
如何学习编程
lampcy
java 编程 C++ c
首先,我想说一下学习思想.学编程其实跟网络游戏有着类似的效果.开始的时候,你会对那些代码,函数等产生很大的兴趣,尤其是刚接触编程的人,刚学习第一种语言的人.可是,当你一步步深入的时候,你会发现你没有了以前那种斗志.就好象你在玩韩国泡菜网游似的,玩到一定程度,每天就是练级练级,完全是一个想冲到高级别的意志力在支持着你.而学编程就更难了,学了两个月后,总是觉得你好象全都学会了,却又什么都做不了,又没有
架构师之spring-----spring3.0新特性的bean加载控制@DependsOn和@Lazy
nannan408
Spring3
1.前言。
如题。
2.描述。
@DependsOn用于强制初始化其他Bean。可以修饰Bean类或方法,使用该Annotation时可以指定一个字符串数组作为参数,每个数组元素对应于一个强制初始化的Bean。
@DependsOn({"steelAxe","abc"})
@Comp
Spring4+quartz2的配置和代码方式调度
Everyday都不同
代码 配置 spring4 quartz2.x 定时任务
前言:这些天简直被quartz虐哭。。因为quartz 2.x版本相比quartz1.x版本的API改动太多,所以,只好自己去查阅底层API……
quartz定时任务必须搞清楚几个概念:
JobDetail——处理类
Trigger——触发器,指定触发时间,必须要有JobDetail属性,即触发对象
Scheduler——调度器,组织处理类和触发器,配置方式一般只需指定触发
Hibernate入门
tntxia
Hibernate
前言
使用面向对象的语言和关系型的数据库,开发起来很繁琐,费时。由于现在流行的数据库都不面向对象。Hibernate 是一个Java的ORM(Object/Relational Mapping)解决方案。
Hibernte不仅关心把Java对象对应到数据库的表中,而且提供了请求和检索的方法。简化了手工进行JDBC操作的流程。
如
Math类
xiaoxing598
Math
一、Java中的数字(Math)类是final类,不可继承。
1、常数 PI:double圆周率 E:double自然对数
2、截取(注意方法的返回类型) double ceil(double d) 返回不小于d的最小整数 double floor(double d) 返回不大于d的整最大数 int round(float f) 返回四舍五入后的整数 long round