快捷搜索:

FireFox下文本框域百分比自适应数值padding显示bu

FireFox下文本框域百分比自适应数值padding显示bug解决方案

  asp代码可以用多种脚本语言编写吗知乎文档下载对于文本框或者文本域,光标最好距离左侧边缘有一定的间距。因此,我们基本上都有类似下面的设置:

  但是,如果只考虑文本框本身(父标签无其他特殊处理),这一套在流体环境下是行不通的,因为固定的padding数组无法让文本框永远100%自适应外部的宽度,至少非现代浏览器下是如此!//zxx: CSS3计算(calc())就是为了解决这类问题才诞生的!

  上面这种写法,IE6+, Opera, Chrome, Safari浏览器都是显示很OK的;唯独FireFox火狐浏览器,其虽然宽度渲染正常,但是,光标的位置确是顶头的(与数值padding的显示完全不同)。

  //zxx: 可能有人会提议div模拟文本框(即div设置padding值), 文本框本身no border, no padding, 且width:100. 这种操蛋的方法我是一点都不喜欢的(纯属个人喜好,没有攻击的意思),一是啰嗦;二来文本框本身可能就有box-shadow, outline以及内联的交互验证UI(如验证非法红色外发光),难道你想把这些都抹杀掉??

  firefox浏览器下的问题其实只是文字的位置问题而已,其本身的宽度渲染都是准确的,因此asp学习,我们可以把解决问题的关键点放在解决文字不缩进的问题上——我们自然而然就会想到文字缩进属性text-indent.

  现在的问题是,如何只让FireFox浏览器设置这个属性呢?FireFox浏览器有专属的hack吗?

  说到这里,可能有比较灵光的同行会疑问,既然text-indent可以让文字位置后移,那为何要使用padding呢,直接:

  这确实是个不错的idea, 只可惜在IE6/IE7浏览器下,text-indent会偏移文本框的位置(连文本框自身一起缩进了!)。如下截图示意:

  text-indent撑开文字边距是有局限性的,显而易见,其只能让第一行文字有边距。于是,当面对多行文本域(textarea)的时候,text-indent就捉襟见肘,无能为力了!

  FireFox下文本框或文本域对百分比padding值的显示有问题,但是对具体px的padding值显示却正常。因此,我们可以设置padding-left/padding-right为类似10px这样的具体数值,而把问题解决的重心放在如何宽度100%显示上。

  在CSS3属性中,有个叫做box-sizing的好东西,IE8+以及现代浏览器都支持,如果我们设置该属性值为border-box,则padding值不会撑大元素的设定宽度,如width:100px; padding:10px;最后元素占据的宽度还是100像素而不是120像素。

  上面的box-sizing方法影响到了原本OK的height设置,而使用CSS3 cacl()计算只针对目标属性width进行处理,如下修复代码:

  到目前为止所示的情况都是不含边框的,基本上,全世界90%+的文本框或者是文本域都是有border的,或自身的或CSSer设置的,要知道,border是不支持百分比宽度的,只能是固定数值大小的单位。现在问题来了:含有border的文本域文本框如何实现宽度100%的自适应呢??

  上面一个例子是仅边框是固定像素值;下面一个是边框以及左右padding都是固定数值。都实现了良好的100%自适应,兼容IE6以及IE7浏览器。

  然而,在实际的项目中,我并不经常使用上面的方法。一是牵扯父标签;二是牵扯计算;三是无法大范围重用(原因是父标签的padding值设置受限)。

  课程开始: 前三节课,我们知道了什么是“内容块状元素和内联元素”,以及XHTML+CSS布局的核心概念“盒子模型”,同时又学习了一下页面布局中两种方法中的一种方法“浮动&...查看详情

  上节课我们将导航条做成了下面的效果但是此时的导航条还没有链接,还不能点击,这节课我们就要做一个完整的导航条【第四步】 我们需要将上面的导航条做以下几个修改 1)给上面的导航加上链接; 2)链接文字大小修改为12px; 3)并且规定链接样式,鼠标移上去和拿开的效果 修改方法如下 1...查看详情

  【第一步 整体布局与公共CSS定义】我们先来分析一下这个页面页面主要分5大块,顶部的Logo、导航条Nav、Banner、Content、Footer,如下图 下载 (116.12 KB)2009-6-1 09:22这样HTML就很容易写出来了复制代码代码如下: <div ...查看详情

  【第七步 内容左侧板块(ContentL)布局】 我们分析一下他的结构,主要包括标题和文章内容两块,并且标题和内容之间有一条虚线,而第二篇文章的内容部分是图片和文字相结合且文字环绕图片。 好~!既然搞清楚结构了,后面我们布局就容易了 我打算标题用<h1>标签,为什么这...查看详情

  如果下面的文字实在是无法理解透,那就记住这节课最后总结的一句话“如果用position来布局页面,父级元素的position属性必须为relative,而定位于父级内部某个位置的元素,最好用absolute,因为它不受父级元素的padding的属性影响,当然你也可以用...查看详情

  如果你还是不能太明白这句话,我们就做个实例,把我们第5节页面的头部blog区域用定位(position)来布局一下 HTML代码和原来的没有区别: 复制代码代码如下: <div id=Logo> <a href=# id=logoLink>&l...查看详情

  说到浏览器兼容性问题,就必须说CSS Hack!提到Hack大家肯定会想到电脑黑客(hacker)、和病毒程序联系到一块,不过在CSS中,Hack是指一种兼容CSS在不同浏览器中正确显示的技巧方法。说的更直白一些就是,你平时做个页面,布局正确,CSS正确,可就是在不同的浏览器中显...查看详情

  代码如下: HTML代码: 复制代码代码如下: <a id=theLink></a> CSS代码: 复制代码代码如下: #theLink{ display:block;/*因为标签a是内链元素,所以利用这句话将内链元素转化成块状元素,后面的width和...查看详情

  前言为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性。在IE6中引入一个增设的兼容性模式,文件兼容性使你能够在IE呈现你的网页时选择特定编译模式。新的IE为了确保网页在未来的版本中都有一支的外观,IE8引入了文件兼容性。当你引入一个增设的兼容性模式,...查看详情

  使用CSS来修饰滚动条 1.overflow内容溢出时的设置 overflow-x水平方向内容溢出时的设置 overflow-y垂直方向内容溢出时的设置 以上三个属性设置的值为visible(默认值)、scroll、hidden、auto。 2.scrollbar-3d-ligh...查看详情

您可能还会对下面的文章感兴趣: