我想在将鼠标悬停在链接上时放大链接的字体大小,这可以通过 CSS 代码中的以下行轻松实现。
a:hover {font-size:110%}
但是,当链接字体大小增加时,它也会“膨胀”<div>
我的链接所在的大小,这会“挤压”它下面的 div 并使整个页面“摇晃”。
有没有办法保持<div>
相同的大小,而链接字体大小放大?
你可以让你div
有一个固定的大小,并且用一个position:absolute;
为你的<a>
,使它的字体变大不会影响到<div>
。
HTML
<div id="content">
<a href="#">Hey there</a>
</div>
<div id="more">More Divs</div>
CSS
a
{
font-size:16px;
position:absolute;
}
a:hover
{
font-size:110%;
}
#content
{
position:relative;
height:20px;
}
上面的代码有效,但这里还有另一种可能适用于您的解决方案。没有理由使用 % ,如果有,这个文档仍然有效。
有 2 个示例:字体大小为像素,字体大小为百分比。
HTML
<div class="main">
<div class="content">
PX
</div>
</div>
<div class="main">
<div class="content2">
%
</div>
</div>
CSS
.main {
/*Styling for better viweing*/
background: #000fff;
float:left;
height: 100px;
width: 100px;
}
.content{
/*Styling for better viweing*/
background: #ff0000;
margin: 8px;
border: #000 1px solid;
float:left;
text-align: center;
/*Set Size of DIV snd font*/
height:80px;
width:80px;
font-size:30px;
/*Optional to hide overflow*/
overflow-x:hidden;
overflow-y:hidden;
}
.content:hover{
/*Set New Font Size*/
font-size:80px;
}
.content2{
/*Styling for better viweing*/
background: #ff0000;
margin: 8px;
border: #000 1px solid;
float:left;
text-align: center;
/*Set Size of DIV snd font*/
height:80px;
width:80px;
font-size:100%;
line-height:100%;
/*Optional to hide overflow*/
overflow-x:hidden;
overflow-y:hidden;
}
.content2:hover{
/*Set New Font Size*/
font-size:800%;
line-height:110%;
}
HTML:
<div id="mydiv">
<a href="#">Link</a>
</div>
CSS:
#mydiv a {
display:block;
font: 16px/30px Arial, Helvetica, sans-serif;
border:1px solid #CCC;
padding:10px;
}
#mydiv a:hover {
font-size: 200%;
}
听起来您em
在div
. 这通常不是一件坏事,但如果你增加字体大小,你也会增加em
. 正常情况下1 em = 16px
。
您可以使用您的属性的rem
长度值。这样您就可以使用 html 根目录的标准字体大小。(只要你没有做这样的事情。那会改变to的标准值。)height
div
html { font-size 35px; }
em
35px
或者你可以去 oldschool 并px
在你的div
.