当前位置: 首页 > 知识库问答 >
问题:

如何使font-size相对于父div?

黄骏喆
2023-03-14

我希望我的div中的文本与父div保持相同的大小,百分比为%。即。我希望我的文本的font-size为父级div宽度的50%。因此,当页面大小改变时,%中的文本始终保持相同大小。

下面是我要说的:

null

.counter-holder{
	display: block;
	position: absolute;
	width:90%;
	height:20%;
	top: 70%;
	left: 50%;
	/* bring your own prefixes */
	transform: translate(-50%, -50%);
}


.counter-element-box{
	position:relative;
	vertical-align: text-top;
	border-style: solid;
    border-width: 1px;
    width: 20%;
    height: 100%;
    float:left;
    margin: 6%;
}

.counter-element-text{
	position:absolute; 
	top:50%; 
	width: 50%;
	max-width:50%;
	display: inline-block;
	height:100%;
	margin-left:50%;
	font-size : 80%;overflow: hidden;
}

.counter-element-value{
	position:absolute; 
	top:50%; 
	width: 50%;
	max-width:50%;
	display: inline-block;
	height:100%;
	padding-left:30%;
	font-size : 80%;overflow: hidden;
}
<div class="counter-holder">
	<div class="counter-element-box">
		<div id="years" class="counter-element-value">
			0
		</div>
		<div class="counter-text counter-element-text" >
		    Years
		</div> 
	</div>
	<div class="counter-element-box">
		<div id="missions" class="counter-element-value">
			0  
		</div>
		<div class="counter-text counter-element-text" >
		    Missions
		</div>
	</div> 
	<div class="counter-element-box">	
		  <div id="team" class="counter-element-value">
			   0 
		  </div>
		  <div class="counter-text counter-element-text" >
		    	Team
		  </div>
	</div>		    	
</div>

null

全屏运行此代码段并尝试调整页面大小,看看文本大小是如何变化的,并且不适合div边框。我怎样才能防止它发生,所以它总是留在边界内?

共有2个答案

雷硕
2023-03-14

我解决这个问题的方法是使用javascript测量容器,然后在该容器上设置px字体大小。一旦为容器设置了基线,那么所有内容的相对字体大小将使用em或%正确缩放。

我在用React:

<div style={{ fontSize: width / 12 }} >
  ...
</div>

CSS:

div {
  font-size: 2em;
}
卓雅达
2023-03-14

使用font-size:x%不是相对于父元素的宽度,而是相对于元素通常具有的font-size。

因此,如果元素的父元素设置了font-size:12px,则元素中的font-size:50%表示元素的font-size6px

您要使用的是视区百分比:vw

例如:font-size:2vw

null

.counter-holder{
	display: block;
	position: absolute;
	width:90%;
	height:20%;
	top: 70%;
	left: 50%;
	/* bring your own prefixes */
	transform: translate(-50%, -50%);
}


.counter-element-box{
	position:relative;
	vertical-align: text-top;
	border-style: solid;
    border-width: 1px;
    width: 20%;
    height: 100%;
    float:left;
    margin: 6%;
}

.counter-element-text{
	position:absolute; 
	top:50%; 
	display: inline-block;
	margin-left:40%;
	font-size : 2vw;overflow: hidden;
}

.counter-element-value{
	position:absolute; 
	top:50%; 
	width: 50%;
	max-width:50%;
	display: inline-block;
	height:100%;
	padding-left:30%;
	font-size : 2vw;overflow: hidden;
}
<div class="counter-holder">
			
			<div class="counter-element-box">
				<div id="years" class="counter-element-value">
					0
		    	</div>
		    	<div class="counter-text counter-element-text" >
		    		Years
		    	</div> 
	    	</div>
	    	<div class="counter-element-box">
		    	<div id="missions" class="counter-element-value">
					0  
		    	</div>
		    	<div class="counter-text counter-element-text" >
		    		Missions
		    	</div>
	    	</div> 
		    <div class="counter-element-box">	
		    	<div id="team" class="counter-element-value">
					0 
		    	</div>
		    	<div class="counter-text counter-element-text" >
		    		Team
		    	</div>
	    	</div>		    	
</div>
 类似资料:
  • 描述 (Description) font-size属性会影响元素文本的大小。 可能的值 (Possible Values) xx-small - 将元素的文本设置为小于x-small值的大小。 x-small - 将元素的文本设置为小于值小的结果。 small - 将元素的文本设置为小于值medium的大小。 medium - 将元素的文本设置为小于由大值生成的大小,并且大于由小值生成的大小。

  • 描述 (Description) font-size-adjust属性用于提高备用字体选择的易读性。 可能的值 (Possible Values) number - 属性font-family的值中列出的第一个字体的aspect值。 该值用于等式fs x(fa/aa)= as,其中fs是元素的font-size的声明值,fa是font-size-adjust的声明值,aa是要使用的实际字体,以及元

  • 我知道你可以通过vw来缩放字体大小相对于视区。我想做的是缩放font-size相对于其容器的宽度。

  • 问题内容: 我有一个父React组件,其中包含一个子React组件。 我需要对子组件应用样式,以将其放置在其父组件中,但是其位置取决于父组件的大小。 我在这里不能使用百分比值,因为顶部和左侧位置是孩子和父母的宽度和高度的函数。 React的实现方式是什么? 问题答案: 该问题的答案是使用Refs to Components中描述的ref 。 潜在的问题是需要DOM节点(及其父DOM节点)来正确放置

  • 我们在SVN中有以下项目结构,其中父项目(不是聚合器)定义了公共配置。父级被单独管理和释放。 因此,基本上每个实际项目(project1、project2)都被用作其子项目的聚合器。公共配置设置(Java编译器版本、其他插件)保留在父级中,在所有项目(project1,project2)中,父级用作Maven。 我想在父级中定义的设置之一是Subversion的SCM URL,例如父级pom.xm