删除HTML按钮/提交的完整样式


94

有没有一种方法可以完全删除Internet Explorer中按钮的样式?我使用css sprite作为按钮,一切看起来都很好。

但是,当我单击该按钮时,它稍微向顶部移动,使它看起来变形。是否有CSS单击状态或mousedown?我不知道是什么触发了这种状态。

我知道这不是什么大不了的事,但是有时候这只是小事。

Answers:


71

我假设当您说“ 单击按钮时,它会稍微移到顶部 ”,这是在谈论该按钮的鼠标向下单击状态,并且当您释放鼠标单击时,它会返回其正常状态?并使用以下命令禁用按钮的默认呈现:

input, button, submit { border:none; } 

如果是这样的话..

就个人而言,我发现您实际上无法停止/覆盖/禁用此IE本机操作,这导致我稍微更改了标记以允许此移动,并且不影响按钮在各种状态下的整体外观。

这是我的最终加价:

<span class="your-button-class">
    <span>
        <input type="Submit" value="View Person">
    </span>
</span>


130

我认为这提供了一种更彻底的方法:

button, input[type="submit"], input[type="reset"] {
	background: none;
	color: inherit;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
	outline: inherit;
}
<button>Example</button>


2
我认为背景没有“无”的含义,重要的是!
sheriffderek '18

4
通常,在执行此操作时,您想覆盖按钮存在的现有样式。很少要使用干净的,无样式的HTML来执行此操作,因此要使用!important。那就是说我已将其删除,因为这是一种情况决定。background: none是完全有效的:stackoverflow.com/questions/20784292/...
凯文·利瑞

对于每个人自己来说都很重要!我认为我无法在不得不使用它的项目上工作。RE:“无”这是比SO帖子更好的参考。当您单独使用“背景”时,您实际上是在使用速记并破坏所有属性。
sheriffderek '18

我为在按钮内的图像样式和某些文本的样式与在按钮外的样式相同而感到困惑<button/>……就我而言,font: inherit;这就是窍门。谢谢!
凯特

3
我认为出于可访问性的目的,您可能希望将该轮廓保留在此处。否则,当您在其上进行选择时,将看不到您所处的位置。很好的答案!
约翰·胡珀

43

您的问题是“ Internet Explorer”,但是对于那些对其他浏览器感兴趣的人,您现在可以使用all: unset按钮取消样式。

它在IE或Edge 18中不起作用,但在其他任何地方都得到很好的支持。

https://caniuse.com/#feat=css-all

Safari颜色警告:由于WebKit中的错误,color使用后设置按钮的文本all: unset在Safari 13.1中可能会失败。(该错误将在Safari 14及更高版本中修复。)“ 设置为黑色,并且覆盖了颜色。” 如果您需要在使用后设置文本,请务必将和设置为相同的颜色。all: unset-webkit-text-fill-colorcolorall: unsetcolor-webkit-text-fill-color

无障碍警告:对于谁是不使用鼠标的用户着想,一定要重新添加一些:focus样式,例如button:focus { outline: orange auto 5px }键盘辅助功能

而且不要忘记cursor: pointer all: unset删除所有样式,包括cursor: pointer,当您将鼠标悬停在按钮上时,该样式会使鼠标光标看起来像是指针。您几乎肯定会想把它带回来。

button {
  all: unset;
  color: blue;
  -webkit-text-fill-color: blue;
  cursor: pointer;
}

button:focus {
  outline: orange 5px auto;
}
<button>check it out</button>


1
这次真是万分感谢!
艾迪格

出于可访问性原因,这是不可取的。例如,您需要重新添加元素状态的所有outline样式:focus
德文

@Devin大点!我更新了我的帖子,并提出了重新添加outline样式的建议。(但我不认为我们还需要再添加其他任何内容。您知道吗?)
Dan Fabulich

8

尝试从按钮上删除边框:

input, button, submit
{
  border:none;
}

4

在引导程序4中最简单。您可以使用类: bg-transparentborder-0


+ shadow-none对我来说就足够了。谢谢!
Bachet

0

我认为这是按钮的“活动”状态。


它必须是活动状态,为此您正确+1。但是我没有让它正常工作
Saif Bechan 2010年

“我认为”不是答案。
shinzou
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.