前言

  本篇文章将会持续更新,我会将我遇见的一些问题,和我看到的实用的CSS技巧记录下来,本篇文章会以图文混排的方式写下去。具体什么时候写完我也不清楚,反正我的目标是写100个。

   本案例都是经本人实测,并附加全部案例下载地址。http://pan.baidu.com/s/1geUcAcF

1、背景图片清晰度不够,明明原图很清楚,但是在浏览器看不清楚。

  解决方案

#login-main {
width: 100%;
height: 100%;
background: url("../img/login-ba2.jpg") no-repeat center;
background-size: 100% 100%; //加上这句话就行啦。
}

2、img标签怎么居中

  讲解:设置父元素为相对定位,子元素绝对定位。然后设置子元素的 top:50% right:50%, 在减去子元素自身的 margin-top,和margin-left。

<div id="tow">
<img src="img/img-100px.jpg" alt="">
</div>
#tow {
width: 200px;
height: 200px;
background-color: blueviolet;
position: relative;
img {
width: 100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
margin: -50px 0 0 -50px;
}
}

最终效果

3、背景图怎么实现当屏幕缩小时,自动从左右两侧裁剪。

  在写pc端的时候,遇见一些大的banner图一般是1920px,但是又不能写成自适应影响效果,当遇见小屏幕时,右侧会显示不全,我对此问题的解决方案是从左右两侧裁切,让图片始终以中心向两侧展开,能展示多少是多少。溢出部分隐藏。

<div id="three">
<div class="bg-photo "></div>
</div>
#three {
position: relative;
top:;
left:;
width: 100%;
height: 300px;
overflow: hidden; .bg-photo {
position: absolute;
top:;
left:;
width: 100%;
height: 100%;
overflow: hidden;
-webkit-background-size: cover !important;
-moz-background-size: cover !important;
-o-background-size: cover !important;
background-size: cover !important;
background: url('img/index-banner1.jpg') no-repeat center center;
}
}

另外我对sweiper的滑动banner也做了类似的改进。也可以实现上述效果并保持sweiper的滑动。

注:此方法需要引入 sweiper 不懂的可以去sweiper官网下载

<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide swiper-slide1">
<div class=" swiper-slide1-child img1"></div>
</div>
<div class="swiper-slide swiper-slide1">
<div class="swiper-slide1-child img2"></div>
</div>
</div>
<div class="swiper-pagination"></div>
</div>
//css代码
.swiper-slide1 {
position: relative;
top:;
left:;
width: 100%;
height: 610px;
overflow: hidden;
.swiper-slide1-child {
position: absolute;
top:;
left:;
width: 100%;
height: 100%;
overflow: hidden;
-webkit-background-size: cover !important;
-moz-background-size: cover !important;
-o-background-size: cover !important;
background-size: cover !important;
background: url('../img/index-banner1.jpg') no-repeat center center;
}
.img1 {
background: url('../img/index-banner1.jpg') no-repeat center center;
}
.img2 {
background: url('../img/index-banner2.jpg') no-repeat center center; }
}

4、placeholder更改默认颜色

<div id="four">
<input type="text " placeholder="更改颜色">
</div>
#four {
input::-webkit-input-placeholder {
color: blue;
}
input:-moz-placeholder {
color: blue;
}
input::-moz-placeholder {
color: blue;
}
}

最终效果:

5、让图片垂直居中显示

注:但是此方法#five margin将会无效。 除非给#five增加浮动。

<div id="Five">
<img src="img/login-icon2.png" alt="">
</div>
#Five {
display: table-cell;
cursor: pointer;
margin: 0 30px;
vertical-align: middle;
text-align: center;
width: 40px;
height: 40px;
border-radius: 50%;
border: 1px solid #29639a;
img {
margin-top: 5px;
line-height: 40px;
}
}

6、巧用1px边框,并解决retina屏幕DPI问题

在一般的项目中有很多元素需要增加1px边框,要是给每一个元素都写一次样式很麻烦,尤其是移动端的retina屏幕DPI的处理会更加麻烦,本案例讲讲解快速增加边框,并且解决retina屏幕。

很简单,只需要在需要边框的元素上增加class名称'border-1px’即可

<div id="Six" class="border-1px"></div>
#Six {
width: 500px;
height: 40px;
background-color: #1a2f5c;
.border-1px(#f00) }
//Six 的一像素边框
.border-1px(@color) {
position: relative;
&:after {
display: block;
position: absolute;
left:;
bottom:;
width: 100%;
border-top: 1px solid @color;
content: ' ';
}
}
//DPI达到1.5的机型边框缩放0.7 例如 :谷歌Nexus S、三星Galaxy S II等等
@media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5) {
.border-1px {
&:after {
-webkit-transform: scaleY(0.7);
transform: scaleY(0.7);
}
}
}
//DPI达到2.0的机型边框缩放0.7 例如 :苹果iPhone 4 、三星Galaxy S三世 等等
@media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2) {
.border-1px {
&:after {
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
}
}
}

7、图片与文字对不齐

如果出现图片与文字对不齐的现象,使用margin-top是不是很low呢,有一种更好用的办法,就是调试图片的基线。

使用vertical-align:middle调整基线,就可以实现图片在父元素中垂直居中,但是有时候我们的结果不满意,vertical-align也接收数字单位的值、top、bottom等值。本案例我就设置vertical-align:-6px; 0位置为top值。

<div id="Seven">
<img src="img/like-icon.png" alt="">
<span>猜你喜欢</span>
</div>
#Seven {
width: 500px;
height: 44px;
background-color: #1a2f5c;
text-align: center;
margin-top: 4px;
img {
width: 28px;
vertical-align: -6px;
line-height: 44px;
max-width: 100%;
}
span {
color: #ffffff;
display: inline-block;
line-height: 44px;
}
}

最终效果-是不是挺好。

8、1px边框全方位版本(上下左右都有)并且解决DPI问题

<div id="Eight"></div>
#Eight {
position: relative;
width: 400px;
height: 20px;
padding: 8px 10px;
margin:0 12px 30px;
background-color: #ffffff;
border-radius: 4px;
&:after {
width: 100%;
height: 100%;
position: absolute;
top:;
left:;
content: '';
border: 1px solid #cacaca;
border-radius: 4px;
}
@media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2) {
&:after {
width: 200%;
height: 200%;
-webkit-transform: scale(.5);
transform: scale(.5);
pointer-events: none;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}
}

最终效果

9、使用利用vertical-align:middle,实现元素水平垂直居中。

实现原理主要是是让daughter的基线与son的基线对其并且使用vertical-align:middle进行居中,而且son的高度还是100%,所以就实现了垂直居中,再使用text-align: center;就实现了水平剧中。

<div id="Nine">
<div class="son">112312323</div>
<div class="daughter"></div>
</div>
#Nine {
width: 300px;
height: 300px;
left:;
top:;
text-align: center;
font-size:; /*设置font-size为了消除代码换行所造成的空隙*/
background-color: #1a2f5c;
.daughter {
width: 30%;
height: 30%;
background-color: white;
vertical-align: middle;
display: inline-block;
}
.son {
vertical-align: middle;
display: inline-block;
height: 100%;
}
}

最终效果

10、使用transform实现元素的垂直水平居中。

这个居中的实现原理是子元素对父元素做定位,定位到父元素百分之50的top,和百分之50的left,然后在减去子元素自身left和top的50%。就形成居中了。

<div id="Ten">
<div>
</div>
</div>
#Ten {
position: relative;
width: 300px;
height: 300px;
background-color: #1a2f5c;
div {
width: 30%;
height: 30%;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
background-color: white;
}
}

最终效果

11、使用弹性盒模型实现垂直居中方法,最简单粗暴的方法,但是注意浏览器兼容性问题。

如果有同学不知道弹性布局的,我推荐百度搜“阮一峰弹性布局”我记得有两篇文章,一篇像色子似的,另外一个是语法的,建议先看语法再看,色子那篇。

<div id="Eleven">
<div>
</div>
</div
#Eleven {
width: 300px;
height: 300px;
background-color: #1a2f5c;
display: flex;
justify-content: center;
align-items: center; div {
width: 30%;
height: 30%;
background-color: white;
}

}

12、使用表格布局实现元素水平居中

实用表格方式实现这个方式有一个弊端就是如果被居中的子元素使用百分比单文那么久必须要给td,tr设置宽高。相对将稍微繁琐了一点点,

<table id="Twelve">
<tr>
<td>
<div class="daughter">
</div>
</td>
</tr>
</table>
#Twelve {
width: 300px;
height: 300px;
text-align: center;
background-color: #1a2f5c;
tr, td {
width: 100%;
height: 100%;
}
.daughter {
display: inline-block;
width: 30%;
height: 30%;
background-color: white;
}
}

最终效果

13、解决第一个子元素margin-top越界问题(会把父元素顶下来)

在一些项目中会遇见个给第一个子元素增加margin-top的时候会吧父元素顶下来。很多同学一般都会把margin改成padding,但是那样做很繁琐,现在我给大家带来几种解决方案。

1、给父元素加border——有副作用: 一般父元素Div用来做布局使用,添加border会使用内容的height和width变大

2、给父元素加padding-top:1px——有副作用

3、给父元素加overflow:hidden——有副作用:一旦子元素内容溢出,将会无法显示溢出的内容

4、为父元素添加内容生成:这样的话当前子元素就不在是父元素的第一个子元素这样就可以了,该方法无任何副作用,

本案例将会使用第四种方法。

<div id="Thirteen">
<div class="father"></div>
<div class="father">
<div class="child">child</div>
</div>
</div>
#Thirteen {
.father {
width: 200px;
height: 100px;
background-color: #1a2f5c;
&:before {
content: ' ';
display: table;
}
.child {
width: 50px;
height: 30px;
margin-top: 20px;
background-color: white;
}
}
}

最终效果

100个实用的CSS技巧,以及遇见的问题和解决方案。的更多相关文章

  1. 20个初学者实用的CSS技巧

    过去就连一个镜像站点,我们都依靠大量的开发人员和程序员进行维护.得益于CSS和它的灵活性使得样式能够从代码中被独立抽离出来,从而让一个只具备基本CSS理论的初学者都能够轻易地改变网站的样式. 不论你是 ...

  2. 一个很实用的css技巧简析

    我是小雨小雨,专注于更新有趣.实用内容的小伙,如果内容对大家有一点帮助,那么就请动动手指,给个关注.点赞支持一下吧. ^ - ^ 序言 前两天接到一个需求,其中包括一个有序的列表,我们今天就来看看这个 ...

  3. 分享几个很实用的CSS技巧对前端技术很有帮助

    创建剪切动画 对于剪切动画,使用clip-path代替width/height,避免DOM重排导致性能过低. .animate { width: 200px; height: 200px; backg ...

  4. CSS技巧:逐帧动画抖动解决方案

    笔者所在的前端团队主要从事移动端的H5页面开发,而团队使用的适配方案是: viewport units + rem.具体可以参见凹凸实验室的文章 – 利用视口单位实现适配布局 . 笔者目前(2017. ...

  5. 学无止境的CSS(xHTML+CSS技巧教程资源大全)

    本文里面收集一些有关CSS的技巧.教程.工具和观点等,其中一些你也许早就运用的炉火纯青,也可能有的你听都没听说过.不管是新手还是高手,大家都继续学习吧. 一,Web 标准 要玩游戏,就得先了解规则.要 ...

  6. 平常写css网页制作时最实用的九条CSS技巧

    一.使用css缩写 使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则请参看<css基本语法>. 二.明确定义单位,除非值为0 忘记定义尺寸的单位是CSS新手普遍的 ...

  7. 一些比较实用的css片段

    新看了一个帖子,里面好多实用的css代码块,可拿出来当做功能库.先附上该文地址http://segmentfault.com/a/1190000002773955 里面的内容很多我挑了几个经过我验证的 ...

  8. 经验分享:多屏复杂动画CSS技巧三则

    当下CSS3应用已经相当广泛,其中重要成员之一就是CSS3动画.并且,随着CSS动画的逐渐深入与普及,更复杂与细腻的动画场景也如雨后春笋般破土而出.例如上个月做的「企业QQ-新年祝福」活动: 感谢sh ...

  9. 网页设计师必备的10个CSS技巧

    CSS是网页设计师的基础,对CSS的了解能使他们能够设计出更加美观别致的网页.使用CSS技巧来巧妙地处理CSS是非常令设计师着迷的事情.在CSS的深海世界里有很多有意思的东西,你只需要找到最适合你的就 ...

随机推荐

  1. sun.misc.Unsafe.park(Native Method)

    关闭tomcat时或者重启tomcat时 log4j2 报错: sun.misc.Unsafe.park(Native Method) 异常信息: 30-Aug-2018 15:59:34.900 S ...

  2. C语言程序设计

    从 大一下 开始写博客,记录自己的学习. 而作为一个强迫症(比如我)是不允许做事缺头少尾的. 想了想还是得大一所学的C语言也搬上来,虽然结构老师经常嘲讽 (也不算嘲讽,算是絮叨吧)我的C语言,但是我还 ...

  3. NOIP simulation

    NOIP 模拟赛Day 1题目名称LGTB 玩扫雷LGTB 学分块LGTB 打THD英文代号mine divide thd时限1 秒1 秒1 秒输入文件mine.in divide.in thd.in ...

  4. nginx处理高并发请求强于apache

    ginx 不同于 Apache2 的一点就是,Nginx 采用单线程,非阻塞,异步 IO 的工作模型. Apache2 对于每一个请求,都会创建一个新进程或线程,会浪费很多内存和 CPU 时间,而 N ...

  5. linux和windows之间的文件压缩和解压缩以及^R的问题

    推荐大家使用zip压缩和解压,因为zip一般是linux系统自带: 一.zip和unzip 1. zip压缩 zip -r myfile.zip ./web 将当前目录里的web下的所有文件和文件夹全 ...

  6. UItextInput-Protocol

    UItextInput是一个protocol,一般来说,文字处理的控件都要遵守这个协议.如UITextField,UITextView.下面介绍一些文字处理的基本概念. marked text 对于多 ...

  7. CH6201走廊泼水节

    题目链接: CH6201 [简化版题意]给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树.求增加的边的权值总和最小是多少. 输入格式 本题为多组数据~ ...

  8. CRC32算法笔记

    这几天在研究CRC32的计算过程,看了CRC算法的原理,也看了不少通过移位法实现的代码,但是算出的结果跟校验工具算的不一致. 折腾了好长时间,终于找到一个手工计算CRC32的文章,再对照IEEE 80 ...

  9. mysql 表复制(表备份)

    复制一个表数据到新表,我们可以直接执行下面的语句 create table new_table LIKE old_table:--将表结构复制到新表 insert into new_table sel ...

  10. appium +android例子

    配置文件: # coding:utf-8 __author__ = 'Helen' """ description:配置全局参数 """ i ...