h1{
color:white;
font-size:14px;
}
选择器(Selector)
{
属性(Property):属性值(Value)
}
声明=属性+属性值
声明块=花括号+多条声明
规则=选择器+声明块
<link rel="stylesheet" href="/assets/style.css">
<style>
li { margin: 0; list-style: none; }
p { margin: lem 0; }
style>
<p style="margin:lem 0">Example Contentp>
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Blogtitle>
<style>
h1 {
color:orange;
foot-size:24px;
}
p {
color:gray;
foot-size:14px;
line-height:1.8;
}
style>
<body>
<h1>Web框架的架构模式探讨h1>
<p>在写干货之前,我想先探讨两个问题,模式的局限性?模式有什么用?p>
head>
html>
代码风格:编程风格
每条声明写一行
两条规则之间空一行
CSS:Cascading Style Sheets
用来定义页面元素的样式
选择器Selector
通配选择器:可以匹配页面中所有元素
<h1>This is headingh1>
<p>this is some paragraph.p>
<style>
* {
color:red;
font-size:20px;
}
style>
标签选择器:通过标签名选中一个元素。
<h1>This is headingh1>
<p>this is some paragraph.p>
<style>
h1 {
color:orange;
}
p {
color:gray;
font-size:20px;
}
style>
id选择器:通过id属性选择元素,id的值在整个页面中必须是唯一的
<header>
<h1 id="logo">
<img src="/h5.png" width="64"
alt="HTML5 logo">
HTML5 文档
<h1>
header>
<style>
#logo {
foot-size:60px;
foot-size:200;
}
style>
类选择器:通过Class属性来选择元素
class的值在页面中可以出现多次,把有相同样式的标签起相同class值,然后通过类选择器定义样式
<h2>Todo Listh2>
<ul>
<li class="done">Learn HTMLli>
<li class="done">Learn CSSli>
<li>Learn JavaScriptli>
ul>
<style>
.done {
color:gray;
text-decoration:line-through;
}
style>
属性选择器:选择元素
<p>
<label>用户名:label>
<input value="test" disabled>
p>
<style>
input[disabled] {
background:#eee;
color:#999;
}
style>
disabled:禁用的,写不了
根据属性值选中元素,例如type=“password”,只有type="password"才会被选中
<p>
<label>密码:label>
<input type="password" required>
p>
<style>
input[type="password"] {
border-color:red;
color:red;
}
stype>
属性选择器可以限定选择元素的属性值是以某一个字符开头或结尾
href^="#":以#号开头
href$=".jpg":以jpg结尾
<p><a href="#top">回到顶部a>p>
<p><a href="a.jpg">查看图片a>p>
<style>
a[href^="#"] {
color:#f5467;
background:0 center/1em
url(top.svg) no-repeat;
padding-left:1.1em;
}
a[href$=".jpg"] {
color:deepskyblue;
background:0 center/1em
url(image.svg) no-repeat;
padding-left:1.1em;
}
style>
伪类(pseudo-classes)
<p>
<a href="http://example.com" target="_blank">
example.com
a>
p>
<label>
用户名:
<input type="text">
label>
<style>
a:link {
color:black;
}
a:visited {
color:gray;
}
a:hover {
color:orange;
}
a:active {
color:red;
}
:focus {
outline:2px solid orange;
}
style>
结构性伪类:通过结点在DOM树中所处位置来选择元素
li:first-child选中第一个元素
li:last-child选中最后一个元素
<h2>电影票房排行h2>
<ol>
<li>阿凡达li>
<li>泰坦尼克号li>
<li>星球大战:原力觉醒li>
<li>复仇者联盟3li>
ol>
<style>
li {
list-style-position:inside;
border-bottom:1px solid;
padding:0.5em
}
li:first-child {
color:coral
}
li:last-child {
border-bottom:none;
}
style>
<label>
用户名:
<input class="error" value="aa">
label>
<span class="error">最少3个字符span>
<style>
.error {
color:red;
}
input.error {
border-color:red;
}
style>
<article>
<h1>拉森火山国家公园h1>
<p>拉森火山国家公园是位于。。。p>
<section>
<h2>气候h2>
<p>因为拉森火山国家公园。。。p>
section>
article>
<style>
article p {
color:coral;
}
article > p {
color:limegreen;
}
article section h2 {
border-bottom:1px dashed #999;
}
style>
选择器组:多个相同规则的选择器,可合为一组
body, h1, h2, h3, h4, h5, h6, ul, ol, li {
margin: 0;
padding: 0;
}
[type="checkbox"],[type="radio"] {
box-sizing:border-box;
padding: 0;
}
RGB
rgb(0,0,0)
16进制--->
hsl(0,100%,50%)
#ff0000bd
rgba(255,0,0,0.74)//多了个a,最后一个参数是不透明度
hsla(0,100%,50%,1)
2.3设置字体
字体font-family:用户的设备上可能没有那么多字体,所以可以多设置几种字体,浏览器会选择设备上有的字体展示。
serif:字体族
<h1>卡尔斯巴德洞窟Carlsbadh1>
<p>卡尔斯巴德洞窟Carlsbadp>
<style>
h1 {
font-family:Optima, Georgia, serif;
}
body {
font-family:Helvetica, sans-serif;
}
style>
通用字体族
Serif:衬线体(Georgia,宋体)
Sans-Serif:无衬线体(Arial,Helvetica,黑体,微软雅黑)
Cursive:手写体(Caflisch Script,楷体)
Fantasy(Comic Sans MS,Papyrus)
Monospace:等宽字体(Consolas,Courier,中文字体)
font-family使用建议
使用Web Fonts:使用一些特殊的字体,用户设备上没有,可以使用Web字体
用@font-face声明web字体,通过font-family指定字体名字,src指定字体的url和格式。浏览器会下载字体并展示。中文的字体文件较大,需使用字体处理工具。把页面上使用到的字符提取成小的字体文件,再使用。
<h1>Web fonts are awesome!h1>
<p>Web fonts are a CSS feature...p>
<style>
@font-face {
font-family: 'Megrim';
src: url('/megrim.woff2') format('woff2'),
url('/megrim.ttf') format('truetype')
}
@font-face {
font-family: 'Buda';
src: url('/buda.woff2') format('woff2')
url('/buda.ttf') format('truetype');
}
h1 {
font-family: Megrim, Cursive;
font-size:40px;
}
style>
font-size:设置文字的字号
<section>
<h2>A web font exampleh2>
<p class="note">Notes:Web fonts ...p>
<p>With this in mind, let's build ...p>
section>
<style>
section {
font-size:20px;
}
section h1 {
font-size:2em;
}
section .note {
font-size:80%;
color:orange;
}
style>
font-style:设置文字是否为斜体,它的默认值是normal,将normal设置为italic即可。
<p class="normal">Normal Textp>
<p class="italic">italic Textp>
<style>
p {
font-size:36px;
font-family:"Helvetica Neue", sans-serif;
}
.normal {
font-style:normal;
}
style>
font-weight:文字粗细,支持100到900九种字重。大部分字体可能只支持normal和bold两种字重。当字体不支持字重时,会以能支持的最接近的字重来显示。
<ul>
<li class="w1">锦瑟无端五十弦(100)li>
<li class="w2">锦瑟无端五十弦(200)li>
<li class="w3">锦瑟无端五十弦(300)li>
<li class="w4">锦瑟无端五十弦(400-normal)li>
<li class="w5">锦瑟无端五十弦(500)li>
<li class="w6">锦瑟无端五十弦(600)li>
<li class="w7">锦瑟无端五十弦(700-bold)li>
<li class="w8">锦瑟无端五十弦(800)li>
<li class="w9">锦瑟无端五十弦(900)li>
ul>
<style>
li { font-size:28px }
.w1 {font-weight: 100}
.w2 {font-weight: 200}
.w3 {font-weight: 300}
.w4 {font-weight: 400}
.w5 {font-weight: 500}
.w6 {font-weight: 600}
.w7 {font-weight: 700}
.w8 {font-weight: 800}
.w9 {font-weight: 900}
style>
line-height:可设置行间距,表示两行文字基准线之间的距离
当使用没有单位的数字来表示行高时,实际行高是这个数字*字体大小。
<section>
<h1>Font families recaph1>
<p>As we looked at in ...p>
section>
<style>
h1 {
font-size:30px;
line-height:45px;
}
p {
font-size:20px;
line-height:1.6;
}
style>
font:style weight size/height family
h1 {
/* 斜体 粗细 大小/行高 字体族 */;
font: bold 14px/1.7 Helvetica, sans-serif;
}
p {
font: 14px serif;
除了字号和字体,其他属性也可不指定
}
2.4设置文字样式
text-align:设置文字在文本里的对齐方式
This is a test of inherit
添加链接描述
constraining也会对求出来的值以min width和max width为准。
padding:指定元素四个方向的内边距
padding-top
padding-right
padding-left
padding只有一个值时,四个方向都是这个值。
两个值:eg:10px 20px:上下是10px,左右是20px
四个值:上 右 下 左
<div class="box1">When one value is ...div>
<div class="box2">When two value is ...div>
<div class="box3">When three value is ...div>
<div class="box4">When four value is ...div>
<style>
div {
width:200px;
text-align:justify;
margin-bottom:1em;
}
.box1 {
background:coral;
padding:20px;
}
.box2 {
background:lightskyblue;
padding:20px 40px;
}
.box3 {
background:lightpink;
padding:20px 30px 40px;
}
.box4 {
background:coral;
padding:20px 30px 40px 50px;
}
指定容器边框样式、粗细和颜色
添加链接描述
添加链接描述
添加链接描述
box-sizing:border-box
添加链接描述
-visible:多了内容会溢出
添加链接描述
2.6css中的盒子
DOM树与盒子
<p><span>Learn to Code HTML & CSS is a simple and ...span>p>
<style>
p {
line-height:2;
padding:1em;
border:3px solid blue;
background: #ccf;
}
span {
background: #fcc;
border:3px solid red;
}
style>
p:块级
style:行级
主轴方向:flex-direction指定的方向;侧轴:与主轴垂直的方向
justify-content:主轴
添加链接描述
宽度分配计算:A的宽度=(总—三个基础宽度)*2/3;B的宽度=(总—三个基础宽度)*1/3;
添加链接描述
flex-shrink默认值是1,指可以被压缩;
添加链接描述