< 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)
Long类型前后端数据不一致
igotyback
前端
响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问
swagger访问路径
igotyback
swagger
Swagger2.x版本访问地址:http://{ip}:{port}/{context-path}/swagger-ui.html{ip}是你的服务器IP地址。{port}是你的应用服务端口,通常为8080。{context-path}是你的应用上下文路径,如果应用部署在根路径下,则为空。Swagger3.x版本对于Swagger3.x版本(也称为OpenAPI3)访问地址:http://{ip
html 中如何使用 uniapp 的部分方法
某公司摸鱼前端
html uni-app 前端
示例代码:Documentconsole.log(window);效果展示:好了,现在就可以uni.使用相关的方法了
四章-32-点要素的聚合
彩云飘过
本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers5.3.xapi。源码见1032.html,对应的官网示例https://openlayers.org/en/latest/examples/cluster.htmlhttps://openlayers.org/en/latest/examples/earthquake-clusters.
DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理
STU学生网页设计
网页设计 期末网页作业 html静态网页 html5期末大作业 网页设计 web大作业
️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程
【加密社】Solidity 中的事件机制及其应用
加密社
闲侃 区块链 智能合约 区块链
加密社引言在Solidity合约开发过程中,事件(Events)是一种非常重要的机制。它们不仅能够让开发者记录智能合约的重要状态变更,还能够让外部系统(如前端应用)监听这些状态的变化。本文将详细介绍Solidity中的事件机制以及如何利用不同的手段来触发、监听和获取这些事件。事件存储的地方当我们在Solidity合约中使用emit关键字触发事件时,该事件会被记录在区块链的交易收据中。具体而言,事件
关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript
二挡起步
web前端期末大作业 javascript html css 旅游 风景
⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip
HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动
二挡起步
web前端期末大作业 web设计网页规划与设计 html css javascript dreamweaver 前端
Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线
webpack图片等资源的处理
dmengmeng
需要的loaderfile-loader(让我们可以引入这些资源文件)url-loader(其实是file-loader的二次封装)img-loader(处理图片所需要的)在没有使用任何处理图片的loader之前,比如说css中用到了背景图片,那么最后打包会报错的,因为他没办法处理图片。其实你只想能够使用图片的话。只加一个file-loader就可以,打开网页能准确看到图片。{test:/\.(p
springboot+vue项目实战一-创建SpringBoot简单项目
苹果酱0567
面试题汇总与解析 spring boot 后端 java 中间件 开发语言
这段时间抽空给女朋友搭建一个个人博客,想着记录一下建站的过程,就当做笔记吧。虽然复制zjblog只要一个小时就可以搞定一个网站,或者用cms系统,三四个小时就可以做出一个前后台都有的网站,而且想做成啥样也都行。但是就是要从新做,自己做的意义不一样,更何况,俺就是专门干这个的,嘿嘿嘿要做一个网站,而且从零开始,首先呢就是技术选型了,经过一番思量决定选择-SpringBoot做后端,前端使用Vue做一
博客网站制作教程
2401_85194651
java maven
首先就是技术框架:后端:Java+SpringBoot数据库:MySQL前端:Vue.js数据库连接:JPA(JavaPersistenceAPI)1.项目结构blog-app/├──backend/│├──src/main/java/com/example/blogapp/││├──BlogApplication.java││├──config/│││└──DatabaseConfig.java
00. 这里整理了最全的爬虫框架(Java + Python)
有一只柴犬
爬虫系列 爬虫 java python
目录1、前言2、什么是网络爬虫3、常见的爬虫框架3.1、java框架3.1.1、WebMagic3.1.2、Jsoup3.1.3、HttpClient3.1.4、Crawler4j3.1.5、HtmlUnit3.1.6、Selenium3.2、Python框架3.2.1、Scrapy3.2.2、BeautifulSoup+Requests3.2.3、Selenium3.2.4、PyQuery3.2
详解:如何设计出健壮的秒杀系统?
夜空_2cd3
作者:Yrion博客园:cnblogs.com/wyq178/p/11261711.html前言:秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀。那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出健壮的秒杀系统?本期我们就来探讨一下这个问题:image目录一:****秒杀系统应该考虑的问题二:****秒杀系统的设计和技术方案三:*
最简单将静态网页挂载到服务器上(不用nginx)
全能全知者
服务器 nginx 运维 前端 html 笔记
最简单将静态网页挂载到服务器上(不用nginx)如果随便弄个静态网页挂在服务器都要用nignx就太麻烦了,所以直接使用Apache来搭建一些简单前端静态网页会相对方便很多检查Web服务器服务状态:sudosystemctlstatushttpd#ApacheWeb服务器如果发现没有安装web服务器:安装Apache:sudoyuminstallhttpd启动Apache:sudosystemctl
补充元象二面
Redstone Monstrosity
前端 面试
1.请尽可能详细地说明,防抖和节流的区别,应用场景?你的回答中不要写出示例代码。防抖(Debounce)和节流(Throttle)是两种常用的前端性能优化技术,它们的主要区别在于如何处理高频事件的触发。以下是防抖和节流的区别和应用场景的详细说明:防抖和节流的定义防抖:在一段时间内,多次执行变为只执行最后一次。防抖的原理是,当事件被触发后,设置一个延迟定时器。如果在这个延迟时间内事件再次被触发,则重
微信小程序开发注意事项
jun778895
微信小程序 小程序
微信小程序开发是一个融合了前端开发、用户体验设计、后端服务(可选)以及微信小程序平台特性的综合性项目。这里,我将详细介绍一个典型的小程序开发项目的全过程,包括项目规划、设计、开发、测试及部署上线等各个环节,并尽量使内容达到或超过2000字的要求。一、项目规划1.1项目背景与目标假设我们要开发一个名为“智慧校园助手”的微信小程序,旨在为学生提供一站式校园生活服务,包括课程表查询、图书馆座位预约、食堂
字节二面
Redstone Monstrosity
前端 面试
1.假设你是正在面试前端开发工程师的候选人,面试官让你详细说出你上一段实习过程的收获和感悟。在上一段实习过程中,我获得了宝贵的实践经验和深刻的行业洞察,以下是我的主要收获和感悟:一、专业技能提升框架应用熟练度:通过实际项目,我深入掌握了React、Vue等前端框架的使用,不仅提升了编码效率,还学会了如何根据项目需求选择合适的框架。问题解决能力:在实习期间,我遇到了许多预料之外的技术难题。通过查阅文
斟一小组鸡血视频
和自己一起成长
http://m.v.qq.com/play/play.html?coverid=&vid=c0518henl2a&ptag=2_6.0.0.14297_copy有一种努力叫做靠自己http://m.v.qq.com/play/play.html?coverid=&vid=i0547o426g4&ptag=2_6.0.0.14297_copy世界最励志短片https://v.qq.com/x/pa
前端代码上传文件
余生逆风飞翔
前端 javascript 开发语言
点击上传文件import{ElNotification}from'element-plus'import{API_CONFIG}from'../config/index.js'import{UploadFilled}from'@element-plus/icons-vue'import{reactive}from'vue'import{BASE_URL}from'../config/index'i
Dockerfile命令详解之 FROM
清风怎不知意
容器化 java 前端 javascript
许多同学不知道Dockerfile应该如何写,不清楚Dockerfile中的指令分别有什么意义,能达到什么样的目的,接下来我将在容器化专栏中详细的为大家解释每一个指令的含义以及用法。专栏订阅传送门https://blog.csdn.net/qq_38220908/category_11989778.html指令不区分大小写。但是,按照惯例,它们应该是大写的,以便更容易地将它们与参数区分开来。(引用
《HTML 与 CSS—— 响应式设计》
陈在天box
html css 前端
一、引言在当今数字化时代,人们使用各种不同的设备访问互联网,包括智能手机、平板电脑、笔记本电脑和台式机等。为了确保网站在不同设备上都能提供良好的用户体验,响应式设计成为了网页开发的关键。HTML和CSS作为网页开发的基础技术,在实现响应式设计方面发挥着重要作用。本文将深入探讨HTML与CSS中的响应式设计原理、方法和最佳实践。二、响应式设计的概念与重要性(一)概念响应式设计是一种网页设计方法,旨在
【C语言】- 自定义类型:结构体、枚举、联合
Cavalier_01
C语言
【C语言】:操作符(https://mp.csdn.net/editor/html/115218055)数据类型(https://mp.csdn.net/editor/html/115219664)自定义类型:结构体、枚举、联合(https://mp.csdn.net/editor/html/115373785)变量、常量(https://mp.csdn.net/editor/html/11523
uniapp实现动态标记效果详细步骤【前端开发】
2401_85123349
uni-app
第二个点在于实现将已经被用户标记的内容在下一次获取后刷新它的状态为已标记。这是什么意思呢?比如说上面gif图中的这些人物对象,有一些已被该用户添加为关心,那么当用户下一次进入该页面时,这些已经被添加关心的对象需要以“红心”状态显现出来。这个点的难度还不算大,只需要在每一次获取后端的内容后对标记对象进行状态更新即可。II.动态标记效果实现思路和步骤首先,整体的思路是利用动态类名对不同的元素进行选择。
html+css网页设计 旅游网站首页1个页面
html+css+js网页设计
html css 旅游
html+css网页设计旅游网站首页1个页面网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode、Sublime、Webstorm、Text、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。获取源码1,访问该网站https://download.csdn.net/download/qq_42431718/897527112,点击
spring mvc @RequestBody String类型参数
zoyation
spring-mvc spring mvc
通过如下配置:text/html;charset=UTF-8application/json;charset=UTF-8在springmvc的Controller层使用@RequestBody接收Content-Type为application/json的数据时,默认支持Map方式和对象方式参数@RequestMapping(value="/{code}/saveUser",method=Requ
ubuntu安装opencv最快的方法
Derek重名了
最快方法,当然不能太多文字$sudoapt-getinstallpython-opencv借助python就可以把ubuntu的opencv环境搞起来,非常快非常容易参考:https://docs.opencv.org/trunk/d2/de6/tutorial_py_setup_in_ubuntu.html
处理标签包裹的字符串,并取出前250字符
周bro
前端 javascript 开发语言
//假设这是你的HTML字符串varhtmlString=`这是一个段落。这是一个标题这是另一个段落,包含一些链接。`;//解析HTML字符串并提取文本functionextractTextFromHTML(html){varparser=newDOMParser();vardoc=parser.parseFromString(html,"text/html");vartextContent=do
css设置当字数超过限制后以省略号(...)显示
周bro
css 前端 vue css3 html 经验分享
1、文字超出一行,省略超出部分,显示’…’用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览。overflow:hidden;text-overflow:ellipsis;white-space:nowrap;2、多行文本溢出显示省略号display:-webkit-box;-webkit-box-orient:vertical;-webkit-lin
360前端星计划-动画可以这么玩
马小蜗
动画的基本原理定时器改变对象的属性根据新的属性重新渲染动画functionupdate(context){//更新属性}constticker=newTicker();ticker.tick(update,context);动画的种类1、JavaScript动画操作DOMCanvas2、CSS动画transitionanimation3、SVG动画SMILJS动画的优缺点优点:灵活度、可控性、性能
h5小游戏定制开发
红匣子实力推荐
随着科技的不断发展,移动互联网已经成为人们生活中不可或缺的一部分。在这个背景下,H5小游戏应运而生,为人们带来了丰富的娱乐体验。H5小游戏定制开发作为一种新兴的游戏开发方式,正逐渐受到市场的关注和青睐。那么,什么是H5小游戏定制开发呢?它又具有哪些特点和优势呢?让我们一起来深入了解一下。首先,我们来了解一下H5小游戏的基本概念。H5小游戏是一种基于HTML5技术的游戏,可以在移动端、PC端等多平台
面向对象面向过程
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