关于css百宝箱?

在前端学习中,总会遇到零星的知识点,小技巧,这些知识点小到不至于用一片博客写出来,遇到时网上查询一下或许也能搞定,但不一定能记住,所以这篇博客就用来记录那些散落的知识点,积少成多,故名百宝箱。

1.文本框光标上浮或下坠的问题

文本框光标位置错误是经常碰到的bug了,自从干了前端,平时上网和以前大不相同,总会对网页的小问题特别敏锐,光标问题可以说是我碰到最多的之一了,不信你看:

酒仙网的登录页:

   甚至还有淘宝:

不过现在他们已经修复好啦,但可惜还是被我截图了,在平时我也碰到过这种现象,那是在IE8下出的问题,上述两网站的问题我都是在高版本chrome下发现的,感觉很意外,下面是我碰到的问题和解决办法:

低版本IE下光标上浮:

解决方法是设置文本框line-height等于文本框高度,但可能会导致其他浏览器光标出问题,所以:

input{
display: block;
width: 330px;
height: 40px;
padding-left:10px;
margin-bottom:0px;
line-height: normal; /*高版本浏览器*/
line-height:40px\9; /*根据个人情况做兼容*/
}

2.更改网页中选中的文字的背景色(默认蓝色):

默认样式:选中背景蓝色,文字白色。

通过css3的伪类 ::selection 来实现更改,同时兼容火狐:

 body ::selection{
color:blue; /* 选中后字体蓝色 */
background-color: red; /* 背景红色 */
text-shadow:none; /* 别的样式自由发挥 */
}
body ::-moz-selection{ /* 兼容火狐 */
color:blue;
background-color: red;
text-shadow:none;
}

修改后样式:字体蓝色,背景红色。

3.更改placeholder文字颜色

html5的placeholder属性为我们带来很大便利,(但在做网页国际化时也带了麻烦),我们所见到的placeholder基本都是默认的灰色,这里通过以下方法更改其默认颜色:

默认灰色:

用以下代码更改,并兼容浏览器:

::-webkit-input-placeholder { WebKit browsers
color:red;
}
:-moz-placeholder { Mozilla Firefox 4 to 18
color:red;
}
::-moz-placeholder { Mozilla Firefox 19+
color:red;
}
:-ms-input-placeholder { Internet Explorer 10+
color:red;
}

更改后为红色:

4.解决复选框与文字水平不对齐的问题

问题现象:

解决代码:

.checkbox{
vertical-align:text-bottom;
margin-bottom:1px; /*按需调整1px,或2px*/
margin-bottom:-1px\9;
}

修正后:

5.伪类:hover切换图标时的闪烁问题

常见的效果就是图标在鼠标经过时改变,常用的方法就是在hover时更改按钮的背景图片,但这可能会导致在更改背景的一瞬间出现空白,然后再显示更改后的图标,问题原因是在页面加载时第二张图片并没有加载上,当hover时才加载,这样才出现闪烁。这个问题不好截图,只能用文字加以说明。解决的办法就是把两个切换的图标p成一张图,然后在hover时用背景图片定位的方法显示更改后的图标。

小技巧:由于浏览器的不同,相同的标签如checkbox在各浏览器显示效果不一样,解决方法就是不用该标签,用span或别的标签代替,然后用图标代替checkbox的显示效果,一张是没选中时的样子,一张是选中时加了“对号”的样子,这样个浏览器下显示效果就统一了。

6.写css代码时最好把颜色对应的颜色值标注在注释中

好处多多,因为有的颜色看着是绿色,但css代码却不是green,有些看着是红色但并不是red,所以可以如下标注,使用起来更加方便:

/*
本网页使用的我颜色值:
purple #530
royal blue #88fb04
dark red #776290
..........
*/

7.div半透明而文字不透明

1.最安全最踏实的方法,两个div,一个不透明,一个半透明,把不透明的定位在半透明之上。

2.对于IE浏览器只需把文字position:relactive; 即可。

3.用rgba , a代表透明度,取值0~1

8.用text-overflow修饰超出文本

text-overflow是css3属性,但主流浏览器都支持,用来更改超出容器文本的显示样式。有两个属性:clip(裁剪)和ellipsis(省略):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>text-overflow</title>
<style> div
{
font-size:12px;
width:200px;
height:100px;
border:4px solid #369; overflow:hidden;;/*隐藏超出部分*/
text-overflow:ellipsis;/* 文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
white-space:nowrap;/* 不换行 */
}
</style>
</head>
<body>
<div>这是一段测试文本,文本的结尾超出部分会被省略掉</div>
</body>
</html>

显示效果:

css百宝箱的更多相关文章

  1. Matplotlib数据可视化(3):文本与轴

      在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...

  2. CSS的未来

    仅供参考 前言 完成<CSS核心技术与实战>这本书,已有一个多月了,而这篇文章原本是打算写在那本书里面的,但本章讲解的内容,毕竟属于CSS未来的范畴,而这一切都还不能够确定下来,所以这一章 ...

  3. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  4. 前端css兼容性与易混淆的点

    一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibil ...

  5. 理解CSS外边距margin

    前面的话   margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有 ...

  6. 理解CSS视觉格式化

    前面的话   CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...

  7. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  8. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  9. 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

随机推荐

  1. 国行手机安装GOOGLE PLAY

    原文地址:http://blog.sina.com.cn/s/blog_68cff87b0101a96k.html 相信国行的手机都是没有google Play 功能的吧,相比其它国外的手机,功能上逊 ...

  2. Quiz(贪心,快速幂乘)

    C. Quiz time limit per test 1 second memory limit per test 256 megabytes input standard input output ...

  3. 一款基于HTML5的Web 3D开发工具

    在我们协助客户进行3D应用的开发过程中,客户遇到的最头疼的问题是如何在短时间内学会使用TWaver 3D引擎,以及使用TWaver 3D来创建和导入项目所需的各种3D业务模型.由于项目涵盖的行业繁多. ...

  4. React Native Android增加本地图片

    将图片文件 UePbdph.png 放入与index.android.js的同目录中,在index.android.js中引入: <Image source={require('./UePbdp ...

  5. 后端码农谈前端(HTML篇)第一课:HTML概述

    一.什么是HTML? HTML不是编程语言,是用来描述网页文档(页面结构)的一种标记语言: HTML指超文本标记语言(Hyper Text Markup Language),之所以称为超文本标记语言, ...

  6. Slip.js – 在触摸屏上实现列表的滑动排序功能

    Slip.js 是一个很小的 JavaScript 库,用于实现对触摸屏的互动 Swipe 和对元素重新排序列表(Reordering).Slip.js 没有任何的依赖,你可以通过自定义 DOM 事件 ...

  7. Rainyday.js – 傻眼了!竟然有如此逼真的雨滴效果

    Rainyday.js 是一个轻量的 JavaScript 库,利用 HTML5 Canvas 实现雨滴下落在玻璃表面的动画效果.Rainyday.js 尽可能的模拟现实的雨滴效果,几乎可以以假乱真了 ...

  8. EPANET能做什么,不能做什么

    What Epanet cand and cannot do Good news!Epanet can do most of the calculations you may need for you ...

  9. css实现高度不固定的div元素模块在页面中水平垂直居中

    <!DOCTYPE html><html>    <head>        <title>Laravel</title> <link ...

  10. sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbname"。

    用sql server自带的消息队列service borker,调用存储过程中,执行了一个跨库的操作,先是用了一个用户,权限什么都给够了,但是一直提示 服务器主体 "user" ...