仅样式化文本输入

假设您想精美地设置文本输入的样式:

仅样式化文本输入_第1张图片 仅样式化文本输入_第2张图片

因此,您可以对这些输入进行样式设置:

input {
    border: 5px solid white; 
    -webkit-box-shadow: 
      inset 0 0 8px  rgba(0,0,0,0.1),
            0 0 16px rgba(0,0,0,0.1); 
    -moz-box-shadow: 
      inset 0 0 8px  rgba(0,0,0,0.1),
            0 0 16px rgba(0,0,0,0.1); 
    box-shadow: 
      inset 0 0 8px  rgba(0,0,0,0.1),
            0 0 16px rgba(0,0,0,0.1); 
    padding: 15px;
    background: rgba(255,255,255,0.5);
    margin: 0 0 10px 0;
}

但是随后您又添加了一些输入,文件输入和提交按钮,您会感到难过,因为您不希望这些样式影响这些元素。

仅样式化文本输入_第3张图片 仅样式化文本输入_第4张图片

因此,您就像没有问题的鲍勃一样,我将确保仅设置文本输入的样式!

input[type=text] {
   /* Awesome styling */
}

但是随后您意识到在构建表单时,您想使用新HTML5输入类型。 这些新的输入类型意味着更好的可访问性,更好的移动支持以及增强的桌面浏览器体验。 还有type=emailtype=urltype=teltype=numbertype=color等等。 这将变得麻烦...

input[type=text],
input[type=url],
input[type=tel],
input[type=number],
input[type=color],
input[type=email], {
   /* And that ain't all of them... */
}

我们接下来干吗? 好吧,我最喜欢的方法是利用CSS3和:not( )选择器。 因此,我们 包括所有新类型,而排除了我们不想样式化的类型。

input:not([type=submit]):not([type=file]) {
   /* omg so much cleaner */
}

仅样式化文本输入_第5张图片 仅样式化文本输入_第6张图片

现在,您将在其他输入上回到第一个(默认用户代理样式表)。 不要害怕使用浏览器默认的表单控件,人们知道它们并且已经习惯了它们。

但是请保持那里的热裤。 IE直到版本9才支持:not()选择器,而版本9尚未真正推出。 是的,的确如此,这很糟糕。 但是,如果您想对该对象进行多边固定,则可以通过快速复制粘贴作业来实现。

那是从这个项目 :

升级MSIE5.5-8,使其与现代浏览器兼容。

对此不感兴趣? 好吧,您总是可以像上面列出的那样列出所有属性选择器,这将使您重新获得IE7支持。 或者,您可以回到仅将类名添加到每个输入上,然后选择应该将其带回到Internet起点的名称。

翻译自: https://css-tricks.com/styling-texty-inputs-only/

你可能感兴趣的:(仅样式化文本输入)