将CSS元素放在其他CSS元素中

时间:2018-08-19 18:24:50

标签: html css

让我们说一个

<div id="1">
   <h1 id="2">Some Text</h1>
   <h1 id="3">Some Text</h1>
</div>

然后将这些元素放在CSS中的矩形上

#1{
   width:50%;
   heght:50%;
   background-image: linear-gradient(to top right, #ff4741 , #f8a2a1);
   margin-left: auto;
   margin-right: auto;
}

然后我想将2 <h></h>居中于矩形.-的确切中心。 我该怎么做,所以当我调整页面大小时,东西会留在矩形的中央吗?

如果我尝试

#2{
   position: absolute;
   text-align: center;
   left:50%
} 

开始从页面的中间而不是元素的中间开始绘制文本,如果我执行left:25%;,这将是与页面相关的元素的中间部分,则实际上开始绘制从中间点到右边,而不是居中。

那我该怎么办呢?

这是我目前拥有的实际代码,我的问题是标题,在不同的屏幕尺寸下,标题上的文本未居中于其矩形中。

#header {
    position: fixed;
    left: 0%;
    top: 0%;
    height: 5%;
    width: 100%;
    background-color: white;
    font-family: 'Roboto', sans-serif;
    font-size: 1em;
    color: #555;
}

#logo {
    position: absolute;
    left: 5%;
    top:20%;
    font-size: 1em;
}

.headref {
    position: absolute;
    left: 50%;
    top: 20%;
    margin-left: 2%;
    text-align: justify;
}

.headelemet {
    position: relative;

}

.AccentLine {
    position: fixed;
    left: 0%;
    height: 2.5%;
    width: 100%;
    background-color: #ff4741;
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    color: #00A0C6;
    text-decoration: none;
    cursor: pointer;
}







#logo_show_off{
        position:absolute;
        left:0%;
        top:5.8%;
        height: 90%;
        width: 100%;
        background-image: linear-gradient(to top right, #ff4741 , #f8a2a1);
}

.logo{
    margin-top: 5%;
    display: block;
    margin-left: auto;
    margin-right: auto;
    height: 25%;
}

#mascotLogo{
    height:45%;
}

#MyLogo{
    position: absolute;
    font-family: 'Fjalla One', sans-serif;
    font-size: 3em;
    color:white;
    text-align: center;
    right:60%;
    top:20%;
}

#MyMascot{
    position: absolute;
    font-family: 'Fjalla One', sans-serif;
    font-size: 3em;
    color:white;
    text-align: center;
    left:60%;
    top:60%;
}
<!doctype html>
<html>

<head>
	<meta charset="utf-8">
	<title>Ionut.E portfolio</title>

	<link href="https://fonts.googleapis.com/css?family=Oswald|Roboto|Fjalla+One" rel="stylesheet">
	<link href="https://www.1001fonts.com/home-planet-bb-font.html" rel="stylesheet">
	<link rel="stylesheet" type="text/css" href="header.css">
	<link rel="stylesheet" type="text/css" href="mainLogo.css">

</head> 
<body>
	<div id="logo_show_off">
		<h1 id="MyLogo">THIS IS MY LOGO LOGO</h1>
		<img id = "mainLogo" class = "logo" src = "Images/Logo.png">
		<h1 id="MyMascot">THIS IS MY MASCOT LOGO</h1>
		<img id = "mascotLogo" class = "logo" src = "Images/mascot_logo_png.png">
	</div>
	
	<!––HEADER––>
	<div class="AccentLine"></div>
	<div id="header">
		<strong id="logo">IONUT.E</strong>
		<strong class="headref headelemet">
			<a href="index.html">Home </a>
		</strong>
		<strong class="headref headelemet">
			<a href="index.html">JavaScript </a>
		</strong>
		<strong class="headref headelemet">
			<a href="index.html">Graphic Design </a>
		</strong>
		<strong class="headref headelemet">
			<a href="index.html">Visual Design </a>
		</strong>
		<strong class="headref headelemet">
			<a href="index.html">Contact me </a>
		</strong>
	</div>
<!––HEADER––> 

	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>
	<h1>test</h1>

</body>

</html>

3 个答案:

答案 0 :(得分:3)

您可以在h1元素上将text-align: center放在.container块级元素的中心,也可以将h1元素内的内容居中 使用text-align: center

.container {
  height: 50%;
  background-image: linear-gradient(to top right, #ff4741 , #f8a2a1);
  margin: 0 auto;
  text-align: center;
  width: 50%;
}
<div class="container">
  <h1>Some Text</h1>
  <h1>Some Text</h1>
</div>

答案 1 :(得分:3)

首先,您不能使用以数字开头的CSS选择器。这意味着#1, #2, #3不是有效的选择器。解决此问题的方法是在transform: translateX(-50%);元素中添加一行CSS属性<h>

答案 2 :(得分:1)

为了使元素居中,我建议使用flexbox。

.parent {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
  flex-direction: column;
}

h1 {
  text-align: center;
}