我需要使按钮看起来像使用CSS的链接。所做的更改已完成,但是当我单击它时,它似乎显示为已按下按钮。任何想法如何删除它,以便即使单击该按钮也可以用作链接?
#
然后使用event.preventDefault()
。链接到太讨厌了javascript:void(0);
。
我需要使按钮看起来像使用CSS的链接。所做的更改已完成,但是当我单击它时,它似乎显示为已按下按钮。任何想法如何删除它,以便即使单击该按钮也可以用作链接?
#
然后使用event.preventDefault()
。链接到太讨厌了javascript:void(0);
。
Answers:
button {
background: none!important;
border: none;
padding: 0!important;
/*optional*/
font-family: arial, sans-serif;
/*input has OS specific font-family*/
color: #069;
text-decoration: underline;
cursor: pointer;
}
<button> your button that looks like a link</button>
button.link {...styles...}
then来定义样式<button class="link">Your button</button>
。这也避免使用!important
始终是一个好主意。
outline
。某些浏览器向其添加按钮。您可以设置outline-color: transparent
。
border-bottom
使用text-decoration:underline
。
可接受的答案的代码在大多数情况下都适用,但是要获得真正像链接的行为的按钮,您需要更多的代码。在Firefox(Mozilla)上正确设置聚焦按钮的样式特别棘手。
以下CSS确保锚点和按钮具有相同的CSS属性,并且在所有常见浏览器上的行为均相同:
button {
align-items: normal;
background-color: rgba(0,0,0,0);
border-color: rgb(0, 0, 238);
border-style: none;
box-sizing: content-box;
color: rgb(0, 0, 238);
cursor: pointer;
display: inline;
font: inherit;
height: auto;
padding: 0;
perspective-origin: 0 0;
text-align: start;
text-decoration: underline;
transform-origin: 0 0;
width: auto;
-moz-appearance: none;
-webkit-logical-height: 1em; /* Chrome ignores auto, so we have to use this hack to set the correct height */
-webkit-logical-width: auto; /* Chrome ignores auto, but here for completeness */
}
/* Mozilla uses a pseudo-element to show focus on buttons, */
/* but anchors are highlighted via the focus pseudo-class. */
@supports (-moz-appearance:none) { /* Mozilla-only */
button::-moz-focus-inner { /* reset any predefined properties */
border: none;
padding: 0;
}
button:focus { /* add outline to focus pseudo-class */
outline-style: dotted;
outline-width: 1px;
}
}
上面的示例仅修改了button
元素以提高可读性,但是也可以轻松地将其扩展为修改input[type="button"], input[type="submit"]
和input[type="reset"]
元素。如果您只想使某些按钮看起来像锚点,则也可以使用一个类。
有关实时演示,请参见此JSFiddle。
另请注意,这会将默认锚样式应用于按钮(例如,蓝色文本颜色)。因此,如果您想更改文本颜色或锚点和按钮的任何其他内容,则应在上述CSS 之后进行。
此答案中的原始代码(请参见代码段)完全不同且不完整。
outline-offset: 0;
如果大纲设置为无,为什么需要?
box-shadow: none
所有内容以清除按钮上的所有样式
text-transform: none;
如果您不介意使用twitter引导程序,建议您只使用link类。
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
<button type="button" class="btn btn-link">Link</button>
我希望这对某人有帮助:)祝你有美好的一天!
尝试使用CSS伪类 :focus
input[type="button"], input[type="button"]:focus {
/* your style goes here */
}
编辑为链接和onclick事件使用(您不应该使用嵌入式javascript事件处理程序,但是为了简单起见,我将在这里使用它们):
<a href="some/page.php" title="perform some js action" onclick="callFunction(this.href);return false;">watch and learn</a>
使用this.href,您甚至可以访问函数中链接的目标。return false
只会阻止浏览器在单击时跟随链接。
如果禁用JavaScript的链接将作为一个正常的链接,只加载some/page.php
-如果你希望你的链接是死的时候JS是被禁止的使用href="#"
您不能在整个浏览器中可靠地将按钮样式设置为链接。我已经尝试过了,但是在某些浏览器中总是存在一些奇怪的填充,边距或字体问题。让按钮看起来像一个按钮,或者在链接上使用onClick和preventDefault。
您可以使用简单的CSS实现此目标,如以下示例所示
button {
overflow: visible;
width: auto;
}
button.link {
font-family: "Verdana" sans-serif;
font-size: 1em;
text-align: left;
color: blue;
background: none;
margin: 0;
padding: 0;
border: none;
cursor: pointer;
-moz-user-select: text;
/* override all your button styles here if there are any others */
}
button.link span {
text-decoration: underline;
}
button.link:hover span,
button.link:focus span {
color: black;
}
<button type="submit" class="link"><span>Button as Link</span></button>