css编码技巧css
linear-gradient background-size 搭配使用////倾斜条纹使用repeating-lineat-gradient////灵活的同色系条纹,background和background-image搭配使用css3
(1)网格中的方格用background和background-image, background-size搭配使用,background-image中有多个line-gradient 以逗号分隔,搭配使用,/////
(2)相似于辅助线,background、background-image和background-size搭配使用
//////(3)波点 background和background-image, background-size、background-position 搭配使用,能够利用两个叠加造成更好看的/////
(4)棋盘,使用三角形拼接造成svg
background和background-image, background-size搭配使用, 蝉原则,根据质数设置background-size,函数
两种方法
上述方法能够衍生出“蚂蚁行军”
!!注意斜纹变虚线,理解background-position百分比的含义;布局
顶部边框裁切字体
半椭圆flex
四分之一椭圆动画
这种状况内容也会被旋转,不符合设计要求!
解决办法: 使用伪元素编码
菱形图片:
使用强大的clip-path属性,点对应的连线就是变换的图形;spa
无弧形切角
弧形切角:
颜色比较突兀,为了明显,有点丑哈哈!
内联svg与border-image方案:
以后补充,
裁切路径方案: 使用clip-path()属性;
邻边阴影
双侧阴影,以上阴影均利用四个值进行实现,而且能够有多个阴影,以逗号分隔;
使用filter: drop-shadow() 里面的参数和box-shadow同样,只是没有阴影尺寸和inset,且不能用逗号分开,filter: blur() grayscale() drop-shadow();滤镜能够串联使用;
基于滤镜的方式:filter: sepia(1) saturate(4) hue-rotate(295deg);能够有动画效果,
基于混合模式: mix-blendmode 能够为整个元素设置混合模式, background-blend-mode 能够为每层
背景单独指定混合模式。 前者须要将图片包裹在div中,向上包裹元素混合!后者须要将图片做为背景图片,向下背景元素混合,且无动画效果!
三种方法各有利弊!
使用伪元素和filter属性完成
使用伪元素和渐变完成,
background-origin: content-box;
background-image: linear-gradient(rgba(0,0,0,.2) 50%,
transparent 0);三者结合使用,单位设置为em,能够使条纹宽度随着文字大小的变化而变化
no-discretionary-ligatures
no-historical-ligatures; 使用此属性解决问题
font-family: Ampersand;
src: local('Baskerville-Italic'),
local('GoudyOldStyleT-Italic'),
local('Palatino-Italic'),
local('BookAntiqua-Italic');
unicode-range: U+26;
}
h1 {
font-family: Ampersand, Helvetica, sans-serif;
}
background: linear-gradient(gray, gray) no-repeat;
background-size: 100% 1px;
background-position: 0 1.15em;
text-shadow: .05em 0 white, -.05em 0 white;
使用此方法生成下划线
color: hsl(210, 13%, 30%);
text-shadow: 0 1px 1px hsla(0,0%,100%,.8);
空心字效果: 使用svg(推荐) 或者使用text-shadow
文字外发光效果:filter: blur() 或 text-shadow
文字凸起效果: 阴影逐渐加深,用mixin设置
环形文字: 利用svg
background: rgba(0, 0, 0, .8);
}
table-layout: fixed;
width: 100%;
}
/ 只有一个列表项时的样式 /
}
开始的全部子元素。 举例来讲, :nth-child(n+4) 将会选中除了第1、 2、
三个子元素以外的全部子元素
padding: 1em;
padding: 1em calc(50% - 450px);
background: #333;
}三行代码解决,calc()函数的用处真多!
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
} transfrom基于自身的宽高进行百分比计算
(2)基于视口单位,但有限,只能使用在视口中main {
width: 18em;
padding: 1em 1.5em;
margin: 50vh auto 0;
transform: translateY(-50%);
}
(3) 基于flexBox解决方案,很推荐,body {
display: flex;
min-height: 100vh;
margin: 0;
}
main {
margin: auto;
} flex和margin: auto;结合使用,而且上下和左右都会居中;;;或者使用main {
display: flex;
align-items: center;
justify-content: center;
width: 18em;
height: 10em;
} 此中运用了justify-content属性和align-items属性
# 第八章 过渡与动画
未完,两天后会更新彻底,有些地方也比较粗略,后期再看一遍的时候进行补全!