CSS(上)css
Cascading Style Sheets 简称 层叠样式表html
官方描述:
用于描述用标记语言编写的文档的外观和格式。 虽然最经常使用于更改用HTML和XHTML编写的网页和用户界面的样式,但该语言能够应用于任何类型的XML文档,包括纯XML,SVG和XUL。 与HTML和JavaScript一块儿,CSS是大多数网站使用的基础技术,用于建立具备视觉吸引力的网页,Web应用程序的用户界面以及许多移动应用程序的用户界面。css3
人话:
层叠样式表也就是CSS,是你在HTML以后应该学习的第二门技术。git
HTML用于定义内容的结构和语义,CSS用于设计风格和布局。好比,您可使用CSS来更改内容的字体、颜色、大小、间距,将内容分为多列,或者添加动画及其余的装饰效果,进而对页面的版面布局和外观样式的美化。github
用于(加强)控制网页样式并容许将样式信息与网页内容分离的一种标记性语言。CSS 不须要编译,能够直接由浏览器执行(属于浏览器解释型语言)。web
例:chrome
h1 { color: red; font-size:25px; } h1选择器 color 属性 red属性值
若是直接利用html页面书写页面,页面的美观达不到要求,若是要添加一些简单样式利用html属性添加会是代码复杂臃肿,因此咱们要使用css进行页面的美化;
编程
Css的做用:
主要是用来进行页面的版面布局和外观样式的美化;segmentfault
使用css的原理:
可以将结构html和样式css分离书写,简化代码,提升可阅读性;
浏览器
直接在标签的开始标签身上添加一个 style=“”属性,而后在引号里面书写css属性和属性值便可,没有实现结构和样式分离,尽可能不用
书写在head标签里面,title标签下面,以一对style标签包裹,实现告终构和样式的半分离;
外部连接的步骤:
1. 新建:.css格式的css文件,直接书写选择器以及css样式; 1. 引用:利用link标签引入新建的css文件,要配合link的三个属性 rel关系,type文件类型(能够不写) ,href文件路径; [https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/link](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/link)
使用外部连接的好处:
1. 实现告终构和样式的彻底分离,代码简介,可读性强; 1. 一个css样式能够共享,若是两个页面的标签样式彻底一致,就可使用同一个css文件,而后分别链接过来便可;
选择器 { 属性1:属性值1; 属性2:属性值2; 属性3:属性值3;…… }
选择器:指定CSS样式做用的HTML对象(要更改样式的标签),花括号内是对该对象设置的具体样式。
属性和属性值:以键值对的形式出现,属性和属性值之间用英文的冒号 ’ : ’ 连接;
选择器的做用:把想要选择的元素标签选择出来。
选择器的分类:基础选择器和复合选择器
以标签名称命名的选择器,能够把将页面中全部的同类元素所有选中;
注意:若是咱们选中了改标签,页面中全部的该标签就会被所有选中,全部不建议你们直接使用标签选择器;
a,p,div,li,ul{ color:red; } /*页面上全部的a,p,li,ul都会将字体颜色设置为红色,不过优先级最低*/
使用方式:在css里面用点“ . ” + 类名称 +{ css键值对 } 进行样式定义;
调用:在html里面哪一个标签须要,就在开始标签敲空格class=“类名称”进行调用;
命名规则:不能用纯数字、不能数字开头的、不能中文命名,建议不要用特殊符号;能够用英文单词或者拼音 命名,能够以数字结束
多类名调用:一个标签身上只能使用一个class,若是想要调用多个类名咱们能够在一个class里面直接以空格 隔开直接书写另外一个类名称便可;
<p class="test">我爱你</p> <style> .test{ color:red; } /*类选择器经过class属性来绑定一个类名,样式经过. + ‘class’来实现关联,优先级低于id选择器*/ /* 工程实践中咱们通常推荐使用类选择器*/ </style>
类选择能够重复使用,只要样式一致就能够重复的使用同一个类名称;
id选择器是惟一的不能重复使用,一个id名称一个页面只能出现一次;
<p id="test">若是说命运是应许之地,那么在这一刻,你并不知道将来会如何勾连</p> <style> #test{ color:red; } /*id选择器经过id属性来绑定一个惟一id,样式经过# + ‘id’来实现关联,优先级较高*/ </style>
一个表示选中全部标签,匹配页面的全部标签,下降页面获得响应时间,不建议使用;
实际工做中用的最多的是下面的代码
{ margin: 0; padding: 0; }
<a class="test" src='/test.html'>一辈子须惜少年时,那能白首下书帷。</a> <style> [src^="test"]{ color:blue; } .test[src]{ color:red; } /*属性选择器经过[attr=*]来选择具备该属性的元素,属性值支持通配符(不作具体详解)形式,优先级较低,多种选择器能够结合使用,上例中,后者优先级高于前者,因此呈现的字体为红色。*/ </style>
<p>我不会变色(穿越人海,只为与你相拥)</p> <ul> <li>我是子元素<span>我是子子元素(梦魂纵有也成虚 那堪和梦无)</span></li> <li>我是第二个子元素(我心匪石,不可转也)</li> <li> <li>我是li里面的li(夜夜除非,美梦留人睡)</li> </li> </ul> <p>我会变红</p> <style> ul li{ margin-left:20px; } /*经过空格隔开的方式选择全部子元素,这样,ul里面的全部li都会应用到左边距20px的样式,包括li里面的li*/ ul>li{ padding-left:20px; } /*经过选择器 > 选择器 来选择直接子元素,意思是说,只有第一级的li会被应用成左内边距20px,而li里面的li不会被应用到。*/ ul + p{ background-colo:red; } /*经过 选择器 + 选择器 来选择兄弟元素,这样让下面的p元素的背景色为红色,而第一个p标签的背景色不会变。*/ </style>
https://codepen.io/AlexZ33/pen/YzzRPBW
这里着重实践下 相邻兄弟选择器
经常使用场景
说明:
<a class="test" src='/test.html'>我是链接</a> <button>点我我就绿</button> <style> a:link{ color:blue; } /*链接未被访问过,为blue颜色*/ a:visited{ color:red; } /*访问以后,变成红色*/ a:hover{ font-size:40px; } /*鼠标一上去,字体变大*/ button:focus{ color:green; } /*点击按钮,按钮聚焦,会变成绿色*/ button:active{ color:red; } /*点击按钮的过程当中,按钮颜色会变红*/ </style>
https://codepen.io/AlexZ33/pen/abbQONO
做用:选择p中第一个字符
简单用法:
https://codepen.io/AlexZ33/pen/WNNYvoa?&editable=true
复杂实践:
https://codepen.io/AlexZ33/pen/XWWybaJ
经常使用的HTML和CSS content属性特殊字符概括
https://codepen.io/AlexZ33/pen/dyyQaPG
权重主要分为 4 个等级:
style=""
,权值为1000#content
,权值为100.content
,权值为10div p
,权值为1例子:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>选择器权重</title> <meta name="description" content="选择器权重"> <meta name="author" content="Way Lau, www.waylau.com"/> <meta name="viewport" content="width=device-width"> <link rel="shortcut icon" href="/favicon.ico"> <style type="text/css"> #redP p { /* 权值 = 100+1=101 */ color: #F00; /* 红色 */ } #redP .red em { /* 权值 = 100+10+1=111 */ color: #00F; /* 蓝色 */ } #redP p span em { /* 权值 = 100+1+1+1=103 */ color: #FF0; /*黄色*/ } </style> </head> <body> <div id="redP"> <p class="red">red <span><em>em red</em></span> </p> <p>red</p> </div> </body> </html>
最终页面效果以下:
https://codepen.io/AlexZ33/pen/QWWVYpR
相似示例:
遵循以下法则:
!important
规则的优先级最大例子:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>!important 用法</title> <meta name="description" content="!important 用法"> <meta name="author" content="Way Lau, www.waylau.com"/> <meta name="viewport" content="width=device-width"> <link rel="shortcut icon" href="/favicon.ico"> <style> .test { color: #f00 !important; color: #000; } .test2 { color: #f00 !important; } .test2 { color: #000; } .test3 { color: #000; } .test3 { color: #f00; } </style> </head> <body> <div class="test">同一条样式内,!important 优先级高</div> <div class="test2">在分散的样式条目内,!important 优先级高</div> <div class="test3">没有被覆盖</div> </body> </html>
https://codepen.io/AlexZ33/pen/dyyqaVZ
注意:Internet Explorer 9+ 支持 border-radius 和 box-shadow 属性。Firefox、Chrome 以及 Safari 支持全部新的边框属性。 对于 border-image,Safari 5 以及更老的版本须要前缀 -webkit-。 Opera 支持 border-radius 和 box-shadow 属性,可是对于 border-image 须要前缀 -o-
假设咱们想给一个容器设置一层白色背景和一道半透明的边框,咱们最初的尝试多是这样的:
border: 10px solid hsla(0, 0%, 100%, .5); background: #fff;
除非你对背景和边框的工做原理很是地熟悉,不然展现出来的结果可能让你摸不着头脑,由于咱们的背景会从它的半透明边框透上来。以下图所示:
默认状况下,背景会延伸到边框所在的区域下层,即便你使用的是不透明的实色边框。幸运的是,在CSS3中,咱们能够经过bakcground-clip
属性来调整上述默认行为。这个属性的初始值是border-box,若是不但愿背景侵入到边框所在的范围,咱们能够把它的值设为padding-box
,即:
border: 1px solid hsla(0, 0%, 100%, .5); background: #fff; background-clip: padding-box
https://codepen.io/AlexZ33/pen/rNBPGOj
目前为止,咱们大多数人可能用过(或滥用过)box-shadow来生成投影。不太为人所知的是,它还接受第四个参数(叫作扩张半径),经过指定正值和负值,可让投影面积加大或减少。一个正值的扩张半径加上两个为零的偏移量以及为零的模糊值,获得的投影其实就像一道实线边框:
background: yellowgreen; box-shadow: 0 0 0 10px #655;
使用box-shadow的另外一个好处是它支持逗号分隔语法,咱们能够建立任意数量的投影(边框)
ackground: yellowgreen; box-shadow: 0 0 0 10px #655, 0 0 0 15px deeppink;
须要注意的是,box-shadow是层层叠加的,第一层投影位于最顶层。所以,须要按照此规律调整扩张半径
https://codepen.io/AlexZ33/pen/LYYXpvX
高级案例:
https://alexz33.github.io/CSS3_demo/css3_picshadow.html
用css画三角形很简单,就是将一个块元素宽高设置为0,而后给某一边设一个比较厚的宽度利用盒子的均分原理,盒子都是矩形或者正方形,从形状的中心,向4个上下左右划分4个部分。
保证元素是块级元素,设置元素的边框,不须要显示的边框使用透明色transparent。
因此,若是你要一个向上或者向下的三角:border-left和border-right就是transparent,而border-bottom可见则三角向上,border-top可见则三角向下
https://codepen.io/AlexZ33/pen/MWWzMdm
咱们将详细介绍文本/字体样式的全部基本原理,包括设置文字的粗细,字体和样式,文字的属性简写,文字的对齐,和其余效果,以及行和字母间距。
用于样式文本的 CSS 属性一般能够分为两类,咱们将在本文中分别观察。
可细致学习文章:
font-size文字大小,经常使用的单位是px像素,通常是有默认的字体大小16px,可是咱们建议你们一开始就在body中设置一个默认大小;
font-family:Arial,”Microsoft Yahei”,“微软雅黑”;
在CSS中设置字体名称,能够直接写中文,可是在文件编码(GB2312, UTF-8等)不匹配时会产生乱码的错误.XP系统不支持相似微软雅黑的中文
方案一:能够用英文来代替
方案二:在CSS直接使用unicode编码来写字体名称能够避免这个错误,使用unicode写中文字体名称,浏览器能够正确的解析
加粗:font-weight:bold; font-weight:700;
不加粗:font-weight:normal; font-weight:400;
倾斜:font-style:italic;
不倾斜:font-style:normal;
注意:实际工做中咱们通常会使用font-style:normal;让em和i不倾斜;
a、直接写英文单词yellow red等等
b、16进制表示#aabbcc或者#abc
c、rgb()如rgb(0,0,0)
d、rgba(),如rgba(0,0,0,0.5)a为透明度
黑色系列:#000; #333; #666; #9999;
灰色系列:#ccc; #eee; #ddd; #dedede;
红色:#f00;
text-align有三个取值left、center、right, text-align只控制盒子里面的内容的对齐;
文本居中:text-align:center;
https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-align
line-height取值为数字,能够设置文字行与行之间的距离;
line-height:30px; 表示行高30px
text-indent首行缩进,取值为具体的像素值或者直接em,1em等于一个字的大小;
text-decoration:none; 没有线
text-decoration:underline;下划线
text-decoration:line-through; 中划线/删除线
text-decoration:overline;上划线
注意:实际工做中咱们用的最多的是没有线 text-decoration:none;,主要是给超连接a标签去除默认的下划线;通常放在css的最前面将页面全部a的样式都去除;
font:是否倾斜 是否加粗 文字大小/ 行高 字体;
font: font-style font-weight font-size/line-height font-family;
注意:**
之前 CSS3 的版本,网页设计师不得不使用用户计算机上已经安装的字体。
使用 CSS3,网页设计师可使用他/她喜欢的任何字体。
当你发现您要使用的字体文件时,只需简单的将字体文件包含在网站中,它会自动下载给须要的用户。
您所选择的字体在新的 CSS3 版本有关于@font-face
规则描述。
您"本身的"的字体是在 CSS3 @font-face
规则中定义的。
注意:Internet Explorer 9+, Firefox, Chrome, Safari, 和 Opera 支持 WOFF (Web Open Font Format) 字体。
Firefox, Chrome, Safari, 和 Opera 支持 .ttf(True Type字体)和.otf(OpenType)字体字体类型)。
Chrome, Safari 和 Opera 也支持 SVG 字体/折叠。
Internet Explorer 一样支持 EOT (Embedded OpenType) 字体。
在 @font-face
规则中,您必须首先定义字体的名称(好比 FontAwesome ),而后指向该字体文件 fontawesome-webfont.woff 。
@font-face { font-family: 'FontAwesome'; src: url('fonts/fontawesome-webfont.woff'); } .font6 { font-family: 'FontAwesome', sans-serif; font-size: 14px; color: pink; line-height: 1.3em; }
源码参见 https://gitee.com/turingitclub/css-learning/tree/dev/base中 base
目录下的 font.html
<h2>Shopping (unordered) list</h2> <p>Paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <ul> <li>Humous</li> <li>Pitta</li> <li>Green salad</li> <li>Halloumi</li> </ul> <h2>Recipe (ordered) list</h2> <p>Paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <ol> <li>Toast pitta, leave to cool, then slice down the edge.</li> <li>Fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> <li>Wash and chop the salad.</li> <li>Fill pitta with salad, humous, and fried halloumi.</li> </ol> <h2>Ingredient description list</h2> <p>Paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <dl> <dt>Humous</dt> <dd>A thick dip/sauce generally made from chick peas blended with tahini, lemon juice, salt, garlic, and other ingredients.</dd> <dt>Pitta</dt> <dd>A soft, slightly leavened flatbread.</dd> <dt>Halloumi</dt> <dd>A semi-hard, unripened, brined cheese with a higher-than-usual melting point, usually made from goat/sheep milk.</dd> <dt>Green salad</dt> <dd>That green healthy stuff that many of us just use to garnish kebabs.</dd> </dl>
如今,若是你去到例子的展现页面,并使用浏览器开发者工具查看那些列表元素,你会注意到若干个默认的样式预设值:
<ul>
和 <ol>
元素设置margin
的顶部和底部: 16px(1em) 0;和 padding-left: 40px(2.5em); (在这里注意的是浏览器默认字体大小为16px)。<li>
默认是没有设置间距的。 --> 怎样设置列表间距?<dl>
元素设置 margin的顶部和底部: 16px(1em) ,无内边距设定。<dd>
元素设置为: margin-left
40px
(2.5em
)。<p>
元素设置 margin的顶部和底部: 16px(1em),和其余的列表类型相同。/* General styles */ html { font-family: Helvetica, Arial, sans-serif; font-size: 10px; } h2 { font-size: 2rem; } ul,ol,dl,p { font-size: 1.5rem; } li, p { line-height: 1.5; } /* Description list styles */ dd, dt { line-height: 1.5; } dt { font-weight: bold; } dd { margin-bottom: 1.5rem; }
line-height
,所以段落和每一个单独的列表项目将在行之间具备相同的间距。 这也将有助于保持垂直间距一致。margin-bottom
为1.5 rem(与段落(p)和列表项目(li))相同。 再次强调一遍,这里很好地实现了一致性! 咱们还使描述术语具备粗体字体,所以它们在视觉上脱颖而出。当为 links 添加样式时, 理解利用伪类有效地创建连接状态是很重要的,以及如何为连接添加样式来实现经常使用的功能,好比说导航栏、选项卡。咱们将在本文中关注全部这些主题。
第一件须要理解的事情是连接状态的概念,连接存在时处于不一样的状态,每个状态均可以用对应的 伪类 来应用样式:
:link
伪类来应用样式。:visited
伪类来应用样式。:hover
伪类来应用样式。HTMLElement.focus()
) 它可使用 :focus
伪类来应用样式。:active
伪类来应用样式。https://codepen.io/AlexZ33/pen/jOOQXpa
当你观察默认样式的时候,你也许会注意到一些东西:
有趣的是,这些默认的样式与20世纪90年代中期浏览器早期的风格几乎相同。这是由于用户知道以及期待连接就是这样变化的,若是连接的样式不一样,就会让一些人感到奇怪。不过这不意味着你不该该为连接添加任何样式,只是你的样式不该该与用户预期的相差太大,你应该至少:
color
文字的颜色cursor
鼠标光标的样式,你不该该把这个关掉,除非你有很是好的理由。outline
文字的轮廓 (轮廓有点像边框,惟一的区别是边框占用了盒模型的空间,而轮廓没有; 它只是设置在背景图片的顶部)。outline 是一个有用的辅助功能,因此在把它关掉以前考虑清楚;你至少应该将悬停 (hover) 状态的样式同时应用到选中 (focus) 状态上。a { } a:link { } a:visited { } a:focus { } a:hover { } a:active { }
这个顺序是重要的,由于连接的样式是创建在另外一个样式之上的,好比第一个规则的样式会应用到全部后续的样式,若是当一个连接被激活 (activated) 的时候,它也是处于悬停 (hover) 状态的。若是你搞错了顺序,那么就可能不会产生正确的效果。要记住这个顺序
body { width: 300px; margin: 0 auto; font-size: 1.2rem; font-family: sans-serif; } p { line-height: 1.4; } a { outline: none; text-decoration: none; padding: 2px 1px 0; } a:link { color: #265301; } a:visited { color: #437A16; } a:focus { border-bottom: 1px solid; background: #BAE498; } a:hover { border-bottom: 1px solid; background: #CDFEAA; } a:active { background: #265301; color: #CDFEAA; }
https://codepen.io/AlexZ33/pen/jOOQJwE
若是你碰到一个比自身容器长的文本,这个技巧对你颇有用。在这个示例中,默认时,无论容器的宽度,文本都将水平填充。
CSS3 文本效果是这样一个术语用来在正常的文本中实现一些额外的特性。
主要是两个属性的 CSS3 文本效果,以下:
注意:Internet Explorer 10, Firefox,Chrome, Safari, 和 Opera支持text-shadow 属性。全部的主流浏览器支持自动换行(word-wrap)属性。Internet Explorer 9及更早IE版本不支持 text-shadow 属性
文本阴影。 您指定了水平阴影,垂直阴影,模糊的距离,以及阴影的颜色:
.text-shadow { text-shadow: 10px 10px 10px #6AAFCF; }
换行。 CSS3中,自动换行属性容许您强制文本换行 - 即便这意味着分裂它中间的一个字:
.word-wrap { word-wrap: break-word; width: 150px; border: 1px solid #ff0000; }
属性 | 描述 | CSS |
---|---|---|
hanging-punctuation | 规定标点字符是否位于线框以外。 | 3 |
punctuation-trim | 规定是否对标点字符进行修剪。 | 3 |
text-align-last | 设置如何对齐最后一行或紧挨着强制换行符以前的行。 | 3 |
text-emphasis | 向元素的文本应用重点标记以及重点标记的前景色。 | 3 |
text-justify | 规定当 text-align 设置为 "justify" 时所使用的对齐方法。 | 3 |
text-outline | 规定文本的轮廓。 | 3 |
text-overflow | 规定当文本溢出包含元素时发生的事情。 | 3 |
text-shadow | 向文本添加阴影。 | 3 |
text-wrap | 规定文本的换行规则。 | 3 |
word-break | 规定非中日韩文本的换行规则。 | 3 |
word-wrap | 容许对长的不可分割的单词进行分割并换行到下一行。 | 3 |
https://codepen.io/AlexZ33/pen/JjobjWB
全部的元素都被一个个的“盒子(box)”包围着
在 CSS 中咱们普遍地使用两种“盒子” —— 块级盒子 (block box) 和 内联盒子 (inline box)。这两种盒子会在页面流(page flow)和元素之间的关系方面表现出不一样的行为:
一个被定义成块级的(block)盒子会表现出如下行为:
width
和 height
属性能够发挥做用除非特殊指定,诸如标题(<h1>
等)和段落(<p>
)默认状况下都是块级的盒子。
若是一个盒子对外显示为 inline
,那么他的行为以下:
用作连接的 <a>
元素、 <span>
、 <em>
以及 <strong>
都是默认处于 inline
状态的。
咱们经过对盒子display
属性的设置,好比 inline
或者 block
,来控制盒子的外部显示类型。
常见block类型:
常见inline类型:
display
CSS 属性指定了元素的显示类型,它包含两类基础特征:
/* <display-outside> values 外部显示类型 */ display: block; display: inline; display: run-in; /* <display-inside> values 内部显示类型 */ display: flow; display: flow-root; display: table; display: flex; display: grid; display: ruby; /* <display-outside> plus <display-inside> values */ display: block flow; display: inline table; display: flex run-in; /* <display-listitem> values */ display: list-item; display: list-item block; display: list-item inline; display: list-item flow; display: list-item flow-root; display: list-item block flow; display: list-item block flow-root; display: flow list-item block; /* <display-internal> values */ display: table-row-group; display: table-header-group; display: table-footer-group; display: table-row; display: table-cell; display: table-column-group; display: table-column; display: table-caption; display: ruby-base; display: ruby-text; display: ruby-base-container; display: ruby-text-container; /* <display-box> values */ display: contents; display: none; /* <display-legacy> values */ display: inline-block; display: inline-table; display: inline-flex; display: inline-grid; /* Global values */ display: inherit; display: initial; display: unset;
示例1: https://codepen.io/AlexZ33/pen/WNNWLJV
示例2: 改变display属性 --> https://codepen.io/AlexZ33/pen/abbxPjw
示例3:
完整的 CSS 盒模型应用于块级盒子,内联盒子只使用盒模型中定义的部份内容。模型定义了盒的每一个部分 —— margin, border, padding, and content —— 合在一块儿就能够建立咱们在页面上看到的内容
inline-block类型是CSS2.1中追加的一个盒模型。
line-block类型属于block类型盒的一种,可是在显示时它具备inline类型盒的特色:
https://codepen.io/AlexZ33/pen/yLLrWaM
CSS2.1以前,若是要在一行并列显示多个block类型的元素,则须要使用float属性或者position属性,可是这样会使样式变得比较复杂。
CSS2.1追加了inline-block类型,使并列显示多个block类型变得很是简单。
https://codepen.io/AlexZ33/pen/WNNWBdo
**https://codepen.io/AlexZ33/pen/QWWPRBp
默认状况下使用inline-block类型时并列显示的元素的垂直对齐方式能够经过vertical-align属性更改
CSS2.1以前,对于水平菜单的实现须要使用到float属性。
通常会利用ul列表和li列表
https://codepen.io/AlexZ33/pen/pooBmmp
**https://codepen.io/AlexZ33/pen/abbxgoX
另外,还可让a元素也属于inline-block类型,而后使用背景色,并指定宽度, 使a元素占据整个菜单。
https://codepen.io/AlexZ33/pen/abbxgOM
缘由是:浏览器的默认行为是把inline元素间的空白字符(空格换行tab)渲染成一个空格,也就是咱们上面的代码<li>换行后会产生换行字符,而它会变成一个空格,固然空格就占用一个字符的宽度,因此你懂的...
方法一:既然是由于<li>换行致使的,那就能够将<li>代码所有写在一排
方法二:
li { float: left; }
CSS2中新增的另外一种盒类型: inline-table类型
https://codepen.io/AlexZ33/pen/GRRLbdE
结果中表格先后的文字处于不一样行中, 由于table元素属于block类型,因此不能和其余文字处于同一行,但若是将table元素修改为inline-block类型,就能够处于同一行了。
若是在display属性中将元素设定为list-item类型,能够将多个元素做为列表来显示,同时在元素的开头加上列表标记。
https://codepen.io/AlexZ33/pen/vYYMqQx
display: none
注意它和 visibility: hidden;
的区别
width
和 height
.padding
相关属性设置。border
相关属性设置。margin
相关属性设置一、https://gitee.com/turingitclub/css-learning/tree/dev/task01 task1
二、 ie的盒子模型 和 chrome的盒子模型有什么不同?
--> 参考文档 : https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Building_blocks/The_box_model
而后能够暂时跳过伪类选择器,开始从新仔细看文本相关的样式
固然,你也能够选择阅读其它网站,好比W3School等上面相应的内容。