首页 / 知识
关于CSS:文本框填充父容器
2023-04-14 17:42:00

Textbox to fill parent container
我试图通过将其 这是在所有现代浏览器中重现行为的最少代码。
我的问题:如何使文本框适合容器?
注意:对于 编辑:大卫的解决方案当然会工作。但是,我不想修改HTML –我尤其不想添加没有语义功能的伪元素。我想不惜一切代价避免这是典型的神经炎。这只能是最后的手段。
使用CSS3,您可以在输入中使用box-sizing属性来标准化其box模型。
不幸的是,这不适用于IE6 / 7,但其余的都很好(兼容性列表),因此,如果您需要支持这些浏览器,那么最好的选择就是Davids解决方案。 如果您想了解更多信息,请查看Chris Coyier撰写的精彩文章。 希望这可以帮助!
您可以用 由于Box-Modell的定义和实现方式,我认为没有针对此问题的纯CSS解决方案。 (除了Matthew描述的内容外:也将百分比用于填充,例如宽度:94%;填充:0 3%;) 但是,您可以构建一些Javascript代码来动态计算页面加载时的宽度... hm,并且每次调整浏览器窗口大小时,该值当然也必须更新。
我做过的一些有趣的测试副产品:Firefox确实将输入字段的宽度设置为100%,如果另外将 不幸的是,这对于纯CSS是不可能的。 HTML或Javascript修改对于任何非平凡但受约束的UI行为都是必需的。 CSS3列在这方面会有所帮助,但在像您这样的场景中则无济于事。 大卫的解决方案是最干净的。这并不是真正的Divitis案例-您不必不必要地添加一堆div,也不必为它们提供诸如" p"和" h1"的类名。它有一个特定的目的,在这种情况下的好处是它也是一个可扩展的解决方案-例如然后,您可以随时添加圆角,而无需进一步添加任何内容。可访问性也不受影响,因为它们是空div。 首先,这是我实现所有文本框的方式:
然后,您可以自由使用CSS添加圆角,添加填充(如您的情况)等,但是您也不必-您可以自由地将这些侧div全部隐藏起来,而只有一个常规输入文本框。 其他解决方案是使用表格,例如亚马逊使用表格来获得灵活但受限的布局,或者使用Javascript调整大小并根据窗口调整大小来更新它们,例如Google文档,地图等都可以做到这一点。 无论如何,我的两分钱:在这种情况下,不要让理想主义妨碍实用性。 :) David的解决方案有效且几乎不会弄乱HTML(实际上,使用语义类名(如" before"和" after"仍然很干净))。 如何在2019年使文本框适合容器? 只需使用display:flex;
@Domenic这不起作用。 width auto只会执行该元素的默认行为,因为width的初始值为auto(请参见第164页,级联样式表2级修订1规范)。分配类型块的显示也不起作用,这只是告诉浏览器在显示元素时使用块框,并且没有分配默认行为,即像div那样占用尽可能多的空间(请参见第121页,级联样式表2级修订1规范)。该行为是由视觉用户代理而非CSS或HTML定义处理的。 此行为是由盒模型的不同解释引起的。正确的盒子模型指出宽度仅适用于内容,并在其上加上填充和边距。因此,您得到的是100%,外加20px左右填充,等于总宽度的100%+ 40px。原始的IE盒模型(也称为"怪癖"模式)在宽度中包括填充和边距。因此,在这种情况下,您内容的宽度为100%-40px。这就是为什么您看到两种不同的行为。据我所知,对此没有解决方案,但是可以通过将宽度设置为98%,将每一边的填充设置为1%来解决。 默认的填充和边框将阻止您的文本框真正变为100%,因此首先必须将它们设置为0:
然后,在文本框周围的div中放置边框以及想要的任何填充或边距:
这应该允许您的文本框可扩展,并且不需要JavaScript即可获得所需的确切大小。 我相信您可以以负边际来抵消溢出。即
|
最新内容
相关内容
linux提取字段串命令?
linux提取字段串命令?,数字,字符串,状态,工具,命令,文件,范本,样式,正则,字段,linux如何获取两个字符串之间的内容?1、在 Linux 中,您可以使用linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的学习python要注意的方法事项
学习python要注意的方法事项,代码,基础,环境,网络,时间,地方,分析,评论,人工智能,数据,python入门比较建议找一个视频课程,花一周时间快速过掉python修改列表元素有什么方法
python修改列表元素有什么方法,代码,数据,步长,元素,基础,位置,培训,列表,切片,方法,增删改查是处理数据最常见的方法,前两种说过了,这里就要说python操作字典类型的常用方法总结
python操作字典类型的常用方法总结,培训,方法,字典,格式,类型,操作,语法,以上,方式,更多,1.has_key()方法可以检查字典python中是否含有指定