[英]Dynamically changing font-size
這是我當前的代碼,但是正如您所看到的,每當字體大小發生變化時,瀏覽器寬度的大小都會改變。 懸停效果不是字體大小的1.5倍,如何使懸停效果動態地獲取文本的當前字體大小並將其相應地加倍(1.5x)?
----> https://jsfiddle.net/054yzoux/ <---------
html
<nav class="navbar-menu">
<ul id="list" class="test">
<li id="emph nav-home">Home</li>
<li id="nav-portfolio">Portfolie</li>
<li id="nav-skills">Færdigheder</li>
<li id="nav-erfaring">Erfaring</li>
<li id="nav-kontakt">Kontakt mig</li>
</ul>
</nav>
的CSS
.navbar-menu ul li{
display: block;
font-size: 4vw;
margin-top: 5%;
}
.navbar-menu ul li:hover{
color: #fff;
transform: translateX(3%);
background-color: #888888;
transition-duration: 0.3s;
font-size: 2em;
}
問題要查看問題所在,請在jsfiddle中將瀏覽器寬度增加並懸停在文本上方。 如您所見,文字減少而不是增加50%
出現此問題的原因是,對於固定視圖, 也許4vw小於懸停時的2em ,這就是放大字體的原因,但是對於較大視圖,則2em小於4vw是這就是毛刺效果的原因。
.navbar-menu ul li{ display: block; font-size: 4vw; margin-top: 5%; transition:all 0.3s; } .navbar-menu ul li:hover{ color: #fff; transform: translateX(3%); background-color: #888888; font-size: 5vw; }
<nav class="navbar-menu"> <ul id="list" class="test"> <li id="emph nav-home">Home</li> <li id="nav-portfolio">Portfolie</li> <li id="nav-skills">Færdigheder</li> <li id="nav-erfaring">Erfaring</li> <li id="nav-kontakt">Kontakt mig</li> </ul> </nav>
如果要在懸停時將字體大小加倍,則應將“ em”單位用於初始狀態和懸停狀態。
以下代碼將起作用:
.navbar-menu ul li{
display: block;
font-size: 3em;
margin-top: 5%;}
.navbar-menu ul li:hover{
color: #fff;
transform: translateX(3%);
background-color: #888888;
transition-duration: 0.3s;
font-size: 4em;}
由於您使用的是動畫(變換),因此最好使用相同的單位以獲得更准確的結果。
.navbar-menu ul li{
...
font-size: 4vw;
...
}
.navbar-menu ul li:hover{
...
font-size: 6vw;/* will give 50% enlarge effect*/
...
}
這是一個演示 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.