如何在CSS中设置min-font-size
我想为我的HTML页面中的每个元素设置最小字体大小。
例如,如果有字体大小小于12px的元素,则它们将变为12px。
但是,如果有字体大小grater然后12px的元素,他们不会改变。
有没有办法用CSS做到这一点?
不可以。虽然您可以使用font-size
属性在body
上设置基本字体大小,但指定较小大小后的任何内容都将覆盖该元素的基本规则。 为了做你正在做的事情,你将需要使用JavaScript。
您可以遍历页面上的元素,并使用如下所示更改较小的字体:
$("*").each( function () { var $this = $(this); if (parseInt($this.css("fontSize")) < 12) { $this.css({ "font-size": "12px" }); } });
这里是一个小提琴你可以看到它完成: http : //jsfiddle.net/mifi79/LfdL8/2/
在CSS3中有一个简单但很好的黑客攻击:
font-size:calc(12px + 1.5vw);
这是因为calc()的静态部分定义了最小值。 即使dynamic部分可能缩小到接近0的值。
这可能不是你想要的,但是在CSS 3中,你可以使用最大function。
例:
blockquote { font-size: max(1em, 12px); }
这样字体大小将是1em(如果1em> 12px),但至less12px。
不幸的是,这个令人敬畏的CSS3function尚不支持任何浏览器,但我希望这将很快改变!
看起来我有点晚,但对于这个问题的其他人尝试这个代码
p { font-size: 3vmax; }
使用你喜欢的任何标签和你喜欢的尺寸(replace3)
p { font-size: 3vmin; }
用于最大尺寸。
使用媒体查询。 例如:这是我使用原始大小为1.0vw的东西,但是当它达到1000时,字母变得太小,所以我扩大了它
@media(max-width:600px){ body,input,textarea{ font-size:2.0vw !important; } }
我正在处理的这个网站没有对500px以上的响应,但你可能需要更多。 亲,这个解决scheme的好处是你保持字体大小缩放没有超迷你字母,你可以保持它的免费。
CSS解决scheme:
.h2{ font-size: 2vw } @media (min-width: 700px) { .h2{ /* Minimum font size */ font-size: 14px } } @media (max-width: 1200px) { .h2{ /* Maximum font size */ font-size: 24px } }
AFAIK这是不可能与纯CSS,
但你可以做一个非常昂贵的jQuery操作,如:
jsBin演示
$('*').css('fontSize', function(i, fs){ if(parseInt(fs, 10) < 12 ) return this.style.fontSize = "12px"; });
而不是使用全局select器 *
我build议你(如果可能的话)对你的select器更具体。
从上面的评论来看,你可以用jQuery来做这件事 – 这里是:
// for every element in the body tag $("*", "body").each(function() { // parse out its computed font size, and see if it is less than 12 if ( parseInt($(this).css("font-size"), 10) < 12 ) // if so, then manually give it a CSS property of 12px $(this).css("font-size", "12px") });
一个更干净的方法可能是在你的CSS中设置font-size:12px的“min-font”类,而只是添加类:
$("*", "body").each(function() { if ( parseInt($(this).css("font-size"), 10) < 12 ) $(this).addClass("min-font") });