电商项目(上)
css3新增选择器:
:first-child:
选取属于其父元素的首个子元素的指定选择器
:last-child:
选取属于其父元素的最后一个子元素的指定选择器
:nth-child(n):
匹配属于其父元素的第n个子元素
:nth-last-child(n):
选择器匹配属于其元素的第n个子元素的每个元素
header:
定义文档的页面
nav:
定义导航链接的部分
footer:
定义文档或节的页脚
article:
定义文档中的节
aside:
定义其所处内容之外的内容
header nav footer article section main
<input type="email">
<input type="tel">
<input type="url">
<input type="number">
<input type="search">
<input type="range">
<input type="time"> // 小时分钟
<input type="date"> // 年月日
<input type="datetime"> // 时间
<input type="month"> // 月年
placeholder
<input type="text" placeholder="请输入用户名">
<input type="text" autofocus> // 自动获取焦点
<input type="file" multiple> // 多文件上传
<input type="text" autocomplete="off"> // 自动完成功能
<input type="text" required> // 必填项 内容不为空
<input type="text" accesskey="s"> // 使用激活元素的快捷键
<form action="">
<fieldset>
<legend>学生<legend>
<label for="userName">姓名:</label>
<input type="text" name="userName" id="userName" placeholder="请输入用户名"><br>
<label for="userPhone">手机号码:</label>
<input type="tel" name="userPhone" id="userPhone" pattern="^\d{10}$"><br>
<label for="email">邮箱地址:</label>
<input type="email" required name="email" id="email"><br>
<label for="collage">学院:</label>
<input type="text" name="collage" id="collage" list="cList" placeholder="请选择"><br>
<datalist id="cList">
<option value="学院"></option>
<option value="java"></option>
<option value="c"></option>
</datalist><br>
<label for="score">成绩:</label>
<input type="number" max="100" min="0" value="0" id="scrore"><br>
<form action="">
<fieldset>
<legend>学生</legend>
<label>姓名:<input type="text" placeholder="请输入学生名字"/></label>
<label>手机号:<input type="tel"/></label>
<label>邮箱:<input type="email"/></label>
<label>学院:<input type="text" placeholder="学院" />
embed 标签
iframe
audio // 播放音频
video // 播放视频
embed
用来插入各种媒体
video
autoplay: 自动播放
controls: 是否显示默认播放控件
loop: 循环播放
width: 播放的宽度
height: 播放的高度
even 偶数
odd 奇叔
class^=add 表示以add开始位置
class$=ass 表示以ass结束位置开始
class*=aa 表示以aa为任意位置
div[class^=add]
input[type=hahaha]
E::first-letter 文本的第一个单词或字
E::first-line 文本第一行
E::selection 可改变选中文本的样式
p::first-letter {
}
E::before
E::after
div::befor {
content: "开始";
}
div::after {
content: "结束";
}
<style>
span:: before {
content: "dashu";
}
<style>
<body>
<span>dashu</span>
</body>
使用after
伪元素
* {
margin: 0;
padding: 0;
}
em,i {
font-style: normal;
}
li {
list-style: none;
}
img {
border: 0;
vertical-align: middle;
}
button {
cursor: pointer;
}
a {
color: red;
text-decoration: none;
}
// 清除浮动
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: ".";
height: 0;
}
.clearfix {
*zoom: 1;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
border: 1px solid red;
line-height: 30px;
}
span {
display: inline-block;
vertical-align: middle;
width: 20px;
height: 20px;
background-color: red;
/* margin-top: 10px;*/
}
</style>
</head>
<body>
<div>
<span></span> dashu
</div>
</body>
</html>
<link rel="shortcut icon" href="favicon.ico"/>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" href="favicon.ico"/>
</head>
<body>
<header>
<div class="logo">
<h1>
<a href="#"></a>
</h1>
</header>
</body>
</html>
text-indent
属性:缩进
缩进文本首行
p {
text-indent: 10px;
}
overflow
属性:用来表示溢出时如何处理
visible 出现在框外
hidden 内容不会出现
scroll 滚动方式处理
auto自动
inherit 从父元素继承overflow
nav li {
float: left;
height: 40px;
line-height: 40px;
margin-left: 25px;
}
nav li a {
display: block;
height: 40px;
font-size: 18px;
padding: 0 10px;
}
nav li a:hover {
border-bottom: 2px solid #00a4ff;
}
<input class="search-text" type="search" id="search" name="keyword" autocomplete="off">
input {
width: 361px;
height: 40px;
border: 1px solid #00a4ff;
outline: none;
padding-lefr: 10px;
}
// outline 元素周围,边框外
outline-color 边框颜色
outline-style 边框的样式
outline-width 边框的宽度
inherit 从父元素继承outline
transition: 要过度的属性
transition-property: 应用过渡的css属性的名称
transition-duration: 定义过渡效果花费的时间
transition-delay: 规定过渡效果何时开始
transition-timing-function 过渡效果的时间曲线
linear 匀速
ease 逐渐慢下来
ease-in 加速
ease-out 减速
transition-duration 花费时间 单位 s
css
样式,外观属性,选择器,显示模式,背景属性,三大特性,盒子模型,浮动,定位。
内部样式表
<head>
<style type="text/css">
选择器 {属性一:属性值一;}
</style>
</head>
外部样式表
<head>
<link href="CSS文件路径" rel="stylesheet" />
</head>
内联样式:
<标签名 style="属性1:属性值1; "> 内容 </标签名>
清除所有HTML
标记的默认边距
* {
margin: 0; /* 定义外边距*/
padding: 0; /* 定义内边距*/
}
div {
width: 180px;
height: 120px;
border: 1px solid red;
overflow: hidden;
}
div img {
width: 180px;
height: 120px;
transition: all 0.4s;
}
div:hover img {
margin-left: -10px;
}
<div>
<img src="1.jpg" alt="">
</div>
transform
移动translate(x,y)
缩放scale(x,y)
旋转rotate(deg)
倾斜skew(deg,deg)
font-size 字号大小
相对长度单位:
em 相对于当前对象内文本的字体尺寸
px 像素
绝对长度单位:
in 英寸
cm 厘米
mm 毫米
pt 点
font-family
属性 用于设置字体
尽量使用英文:
font-family:"Microsoft Yahei"
font-weight
:字体粗细
normal、bold、bolder、lighter
400 normal
700 bold
font-style
:字体风格
normal 标准的字体样式
italic 斜体
oblique 倾斜的字体样式
font-style font-weight font-size/line-height font-family
color
: 文本颜色
line-height
: 行间距
text-align
: 水平对齐方式
text-indent
:首行缩进
text-decoration
文本的装饰
none underline overline line-through
CSS
复合选择器:交集选择器,并集选择器
:link /* 未访问的链接 */
:visited /* 已访问的链接 */
:hover /* 鼠标移动到链接上 */
:active /* 选定的链接 */
块级元素:block-level
每个块级元素通常都会独自占据一整行或多整行。
最典型的块元素:
<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>
行内元素:inline-level
行内元素,内联元素不占有独立的区域
常见的行内元素:
<a>、<strong>、
<b>、<em>、<i>、
<del>、<s>、<ins>、
<u>、<span>
效果
p
里面不能放入块级元素,链接里不能放入链接,a
里面不可以放块级元素。
行内块元素: inline-block
<img/> <input/> <td>
效果
标签转换 display
display: inline;
display: block;
display: inline-block;
css
规范:
.btn { }
font-size: 10px;
行高
行高 等于 高度 垂直居中
行高 大于 高度,文字偏下
否则,偏上
background-image :
none | url (url)
background-repeat :
repeat | no-repeat | repeat-x | repeat-y
background-position : length || length
background-position : position || position
position :
top | center | bottom | left | right
background-attachment :
scroll | fixed
background:
背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
background: transparent url(image.jpg) repeat-y scroll 50% 0 ;
案例:
<head>
<meta charset="utf-8">
<style>
body {
background-color: #000;
}
a {
width: 100px;
height: 100px;
display: inline-block;
text-align: center;
line-height: 100px;
color: #fff;
font-size: 22px;
text-decoration: none; /* 取消下划线 文本装饰 */
}
a:hover {
background: url(images/1.png) no-repeat;
}
</style>
</head>
<body>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
</body>
效果
盒子边框
border :
border-width || border-style || border-color
none: 没有边框
solid: 单实线
dashed:边框为虚线
dotted:边框为点线
double:边框为双实线
border-top: 1px solid red; /*上边框*/
border-collapse:collapse;
表示相邻边框合并在一起
效果
效果
.btn { width: 100px; margin: 0 auto; }
text-align: center;
margin: 10px auto;
清除元素的默认内外边距
* {
padding:0; /* 清除内边距 */
margin:0; /* 清除外边距 */
}
块级元素相邻的外边距的合并,大的那个为准。
稳定性来分:
width > padding > margin
盒子阴影
box-shadow:
水平阴影 垂直阴影
模糊距离(虚实)
阴影尺寸(影子大小)
阴影颜色 内/外阴影;
h-shadow
v-shadow
blur
spread
color
inset
box-shadow: 5px 5px 3px 4px rgba(0, 0, 0, .4);
水平位置 垂直位置 模糊距离 阴影尺寸(影子大小) 阴影颜色 内/外阴影;
normal flow
浮动float
选择器{float:属性值;}
left right none
浮动,其他的元素都要浮动。
清除浮动本质
选择器{clear:属性值;}
left 清除左侧浮动
right 清除右侧浮动
both 同时清除左右两侧浮动
overflow hidden|auto|scroll
使用after
伪元素清除浮动
.clearfix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden; }
.clearfix {*zoom: 1;}
.clearfix:before, .clearfix:after {
content: "",
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
切片工具,切片工具
效果新建基于图层的切片,基于参考线的切片
效果position: absolute;
top: 10px;
left: 10px;
width: 50px;
height: 50px;
margin-left: 20px;
top bottom left right
position:
static 自动定位
relative 相对定位
absolute 绝对定位
fixed 固定定位
效果
叠放次序:z-index
正整数、负整数和0
元素的显示与隐藏
display
visibility
overflow
display : none
隐藏之后,不再保留位置
效果
效果
outline : outline-color ||outline-style || outline-width
outline: 0; 或者 outline: none;
style="outline: 0;"
防止拖拽文本域
resize:none
<textarea></textarea>
<textarea style="resize: none;"></textarea>
top line
middle line
base line
bottom line
vertical-align: baseline | top | middle | bottom
vertical-align: baseline;
vertical-align: middle;
vertical-align: top;
img { vertical-align: top; border: 0; }
.clearfix{ *zoom: 1; }
.clearfix:after { display: block; overflow: hidden; clear: both; }
text-overflow
文字溢出
text-overflow : clip | ellipsis
效果
效果
<li>
<a href="#">
<span>导航栏</span>
</a>
</li>
http://icomoon.io
http://www.iconfont.cn/
http://www.iconfont.cn/
http://fontello.com/
http://glyphicons.com/
http://fortawesome.github.io/Font-Awesome/
https://icons8.com/
引入ico
图标
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
W3C 统一验证工具
[http://validator.w3.org/unicorn](http://validator.w3.org/unicorn)/
http://tool.chinaz.com/Tools/CssFormat.aspx css 代码压缩
autoplay 自动播放
controls 是否显示默认播放控件
loop 循环播放
width 设置播放窗口宽度
height 设置播放窗口的高度
E::first-letter文本的第一个单词或字
E::first-line 文本第一行
E::selection 可改变选中文本的样式
div::befor {
content:"开始";
}
div::after {
content:"结束";
}
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div {
width: 100px;
height: 100px;
background-color: red;
transition: all 1s; // 过渡
}
div:hover {
background-color: green;
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
transition
: 过渡的属性, 花费时间,运动曲线,何时开始!
transition
简写属性,四个过渡属性,transition-property
应用过渡css
属性的名称,transition-duration
定义过渡效果花费的时间,transition-timing-function
过渡的效果,时间曲线,ease
默认值,transition-delay
规定过渡效果何时开始,默认值为0
。
所有属性都变化过渡,为all
。
linear 匀速
ease 逐渐减慢
// 0s 何时开始 1s 花费时间
transition: all 1s ease 0s;
transform
变形:
translate(x,y)
transform: translate(100px, 100px);
scale(x,y)
缩放
rotate(45deg)
旋转
transform-origin
可以设置元素的转换变形的原点
// transform-origin: 10px 10px;
div { transform-origin: left top; transform: rotate(45deg); }
skew(deg,deg)
倾斜
.book dt {
height: 50px;
background-color: red;
font-weight: 300;
color: yellow;
line-height: 50px;
font-size: 20px;
text-align: center;
}
.book dd {
padding: 15px 20px 0;
}
.book dd li {
height: 60px;
border-bottom: 1px solid #ccc;
background-color: pink;
padding-top: 5px;
}
.book h5 {
font-size: 15px;
font-weight: normal;
}
效果
地址:
https://pan.baidu.com/s/1vye5PeNeEp_RPcVhAez4lQ
定位:
position z-index top right bottom left clip
布局:
display float clear visibility overflow overflow-x overflow-y
margin margin-top margin-right margin-bottom margin-left
边框:
border
border-width border-style border-color
border-top
border-top-width border-top-style border-top-color
border-right
border-right-width border-right-style border-right-color
border-bottom
border-bottom-width border-bottom-style border-bottom-color
border-left
border-left-width border-left-style border-left-color
border-radius
border-top-left-radius border-top-right-radius border-bottom-right-radius border-bottom-left-radius
box-shadow
border-image
border-image-source border-image-slice border-image-width border-image-outset border-image-repeat
背景:
background
background-color background-image background-repeat background-attachment background-position background-origin background-clip background-size
字体:
font font-style font-variant font-weight font-size font-family font-stretch font-size-adjust
文本text
text-transform white-space tab-size word-break word-wrap overflow-wrap text-align text-align-last text-justify word-spacing letter-spacing text-indent vertical-align line-height text-size-adjust
css:
// 文本
text-decoration text-decoration-line text-decoration-color text-decoration-style text-decoration-skip text-underline-position text-shadow
direction unicode-bidi writing-mode
// 列表
list-style list-style-image list-style-position list-style-type
// 表格
table-layout border-collapse border-spacing caption-side empty-cells
// 内容
cotent counter-increment counter-reset quotes
// 界面
appearance text-overflow outline outline-width
outline-style outline-color outline-offset nav-index
nav-up nav-right nav-down nav-left
cursor zoom box-sizing resize ime-mode
user-select pointer-events
// 盒子
box-orient box-pack box-align box-flex
box-flex-group box-ordinal-group box-direction box-lines
// 打印Printing
page page-break-before page-break-after page-break-inside
// 媒体查询:
width height device-width device-height orientation aspect-ratio device-aspect-ratio color
color-index monochrome resolution scan grid
案例:
// 小圆点
<div class="circle">
<i class="current"></i>
<i></i>
<i></i>
<i></i>
<i></i>
</div>
<!-- nav部分 -->
<nav>
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">首页</a></li>
</ul>
</nav>
过渡:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
transition: all 0.5s;
}
div:hover {
width: 500px;
height: 200px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
图片效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 185px;
height: 130px;
border: 1px solid red;
overflow: hidden;
}
div img {
width: 195px;
height: 130px;
transition: all 0.4s;
}
div:hover img {
margin-left: -10px;
}
</style>
</head>
<body>
<div>
<img src="1.jpg" alt="">
</div>
</body>
</html>
侧边栏:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
.subnav {
margin: 100px auto;
width: 20px;
}
.subnav li {
width: 20px;
height: 20px;
margin: 3px 0;
background-color: pink;
position: relative;
}
.subnav div {
position: absolute;
right: 0;
top: 0;
height: 20px;
width: 0;
background-color: purple;
transition: all 0.6s;
z-index: -1;
}
.subnav li:hover div {
width: 100px;
}
</style>
</head>
<body>
<div class="subnav">
<ul>
<li>
<div></div>
</li>
<li><div></div></li>
<li><div></div></li>
<li><div></div></li>
<li><div></div></li>
</ul>
</div>
</body>
</html>
位移:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
transition: all 0.4s;
}
div:hover {
transform: translate(100px, 100px);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
盒子居中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
position: absolute;
width: 200px;
height: 200px;
background-color: pink;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
图片放大:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 386px;
height: 260px;
overflow: hidden;
}
div img {
transition: all 0.5s;
}
div:hover img {
transform: scale(1.1);
}
</style>
</head>
<body>
<div>
<img src="1.jpg" height="260" width="386" alt="">
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
div:hover {
transform: scale(0.8);
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
旋转:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
margin: 100px auto;
transition: all 0.6s;
transform-origin: right bottom;
}
div:hover {
transform: rotate(360deg);
}
</style>
</head>
<body>
<div>123</div>
</body>
</html>
风车:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
margin: 100px auto;
transition: all 0.6s;
}
img {
transition: all 0.6s;
}
img:hover {
transform: rotate(360deg);
}
</style>
</head>
<body>
<img src="images/fengche.png" height="585" width="585" alt="">
</body>
</html>
过渡:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 100px;
height: 100px;
background-color: red;
transition: all 2s;
}
div:hover {
background-color: blue;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
// skew 倾斜
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
transform: skew(30deg);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
显示阴影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 150px;
height: 150px;
border: 1px solid #ccc;
transition: all 0.6s;
}
div:hover {
box-shadow: 0 10px 20px rgba(0,0,0,0.5);
transform: translateY(-20px);
}
</style>
</head>
<body>
<div></div>
</body>
</html>
图片旋转:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dashu</title>
<style>
div {
width: 250px;
height: 170px;
border: 1px solid red;
margin: 150px auto;
position: relative;
}
div img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
transition: all 0.6s;
transform-origin: top right;
}
div:hover img:first-child {
transform: rotate(60deg);
}
div:hover img:nth-child(2) {
transform: rotate(120deg);
}
div:hover img:nth-child(3) {
transform: rotate(180deg);
}
div:hover img:nth-child(4) {
transform: rotate(240deg);
}
div:hover img:nth-child(5) {
transform: rotate(300deg);
}
div:hover img:nth-child(6) {
transform: rotate(360deg);
}
</style>
</head>
<body>
<div>
<img src="images/2.jpg" alt="">
<img src="images/3.jpg" alt="">
<img src="images/4.jpg" alt="">
<img src="images/5.jpg" alt="">
<img src="images/6.jpg" alt="">
<img src="images/1.jpg" >
</div>
</body>
</html>
结言
好了,欢迎在留言区留言,与大家分享你的经验和心得。
感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。
作者简介
达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!,帮你成为更好的自己。长按下方二维码可关注,欢迎分享,置顶尤佳。
努力努力再努力Jeskson
网友评论