如何在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") });