gpt4 book ai didi

css - 响应式字体媒体查询少循环

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:53 24 4
gpt4 key购买 nike

我认为这将是一个有用的教程,介绍如何在 less 中创建一个循环,以创建媒体查询以允许响应字体。

我对我的字体永远不会缩放而我的所有 DIV 和图像都可以缩放感到不满意。当你缩小时。字体似乎变大了,使设计和布局看起来很糟糕。当然,我可以保留它并让文本换行,但这看起来也很糟糕。

最佳答案

因此,我创建了这些媒体查询,以每 20 像素增加 0.05 倍的字体大小。然后这演变成更少的逻辑,这样我就可以使用更少的代码。但是,我在下面包含了 css 和 less。

字体每 20 像素改变一次,看起来会有点不稳定。但这比只有 3 个媒体查询来更改字体大小要好得多。那是垃圾。和懒惰。为什么要手动?我离题了。看到有一个循环的好处是你可以改进和增加媒体查询的数量,以获得字体/浏览器大小的更平滑。

最后一件事。以这种方式设置字体后;到 HTML。其他一切都必须设置为百分比字体大小。这样它们就占 html 字体大小的百分比并且会响应。这是一个例子:

html{
font-size: 1em;
}
h1{
font-size: 120%; //1.2em
}
h2{
font-size: 110%; //1.1em
}

请告诉我你的想法。

-爱PAT

更少的循环:

//Set font for 300 pix devices and lower. Font size will increase by 0.05 every 5pix of width.
@fontSize: 0.7em; //em

//@media start at?
@screenWidth: 300px;
@screenWidthMax: 640px;
@loop: (((@screenWidthMax - @screenWidth)/20)-1);

//Size for 640px and above
@fontSizeMath640: round(@fontSize + (@fontSize * (0.05*(@loop+2))),2);
@media (min-width: @screenWidthMax) {
html {
font-size: "@{fontSizeMath640}";
}
}

//Create loop that repeats from 300 pix all the way to 640 pix incrementing by 20px. So, (640-300=340)/20=17. Loop 68 times.
.responsiveFont (@index) when (@index >= 0) {
@minWidth: (@screenWidth+(20*@index));
@maxWidth: (@minWidth + 19);
@fontSizeMath: round(@fontSize + (@fontSize * (0.05*(@index+1))),2);
@media (min-width: @minWidth) and (max-width: @maxWidth) {
html {
font-size: "@{fontSizeMath}";
}
}
// next iteration
.responsiveFont(@index - 1);
}

// end the loop when index is 0
.responsiveFont (0) {}

// "call" the loopingClass the first time with highest value
.responsiveFont (@loop);

//Size for 300px and below
@media (max-width: @screenWidth) {
html {
font-size: "@{fontSize}";
}
}

打印出来的是:CSS

@media (min-width: 640px) {
html {
font-size: "1.33em";
}
}
@media (min-width: 620px) and (max-width: 639px) {
html {
font-size: "1.29em";
}
}
@media (min-width: 600px) and (max-width: 619px) {
html {
font-size: "1.26em";
}
}
@media (min-width: 580px) and (max-width: 599px) {
html {
font-size: "1.22em";
}
}
@media (min-width: 560px) and (max-width: 579px) {
html {
font-size: "1.19em";
}
}
@media (min-width: 540px) and (max-width: 559px) {
html {
font-size: "1.15em";
}
}
@media (min-width: 520px) and (max-width: 539px) {
html {
font-size: "1.12em";
}
}
@media (min-width: 500px) and (max-width: 519px) {
html {
font-size: "1.08em";
}
}
@media (min-width: 480px) and (max-width: 499px) {
html {
font-size: "1.05em";
}
}
@media (min-width: 460px) and (max-width: 479px) {
html {
font-size: "1.01em";
}
}
@media (min-width: 440px) and (max-width: 459px) {
html {
font-size: "0.98em";
}
}
@media (min-width: 420px) and (max-width: 439px) {
html {
font-size: "0.94em";
}
}
@media (min-width: 400px) and (max-width: 419px) {
html {
font-size: "0.91em";
}
}
@media (min-width: 380px) and (max-width: 399px) {
html {
font-size: "0.88em";
}
}
@media (min-width: 360px) and (max-width: 379px) {
html {
font-size: "0.84em";
}
}
@media (min-width: 340px) and (max-width: 359px) {
html {
font-size: "0.8em";
}
}
@media (min-width: 320px) and (max-width: 339px) {
html {
font-size: "0.77em";
}
}
@media (min-width: 300px) and (max-width: 319px) {
html {
font-size: "0.73em";
}
}
@media (max-width: 300px) {
html {
font-size: "0.7em";
}
}

关于css - 响应式字体媒体查询少循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21031710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com