我需要帮助获得标题(h2,h3,h4)区域始终出现在各自的div区域的右上角,无论什么视图正在显示。
此外,标题内容不断溢出,因为我缩小了网页浏览器,我怎么才能阻止它运行?
我试着移动标题的边距和填充,但标题不会向右移动超过350px。
我试着调整div的大小以允许标题移动到右上方。
我应该使用“section元素”而不是div吗?
我还没有尝试使用绝对或相对定位。
/********** Base styles **********/
* {
font-family: arial, sans-serif, helvetica;
font-style: normal;
font-size: 16px;
box-sizing: border-box;
margin: 0;
padding: 0;
color: rebeccapurple;
}
h1 {
text-align: center;
font-size: 175%;
margin-bottom: 40px;
color: black;
}
h2,
h3,
h4 {
font-size: 125%;
text-align: center;
font-weight: bold;
border: 1px solid black;
max-width: 30%;
margin-bottom: 5px;
position: relative;
bottom: 11px;
left: 231px;
}
h2 {
background-color: Pink;
color: black;
}
h3 {
background-color: red;
color: white;
}
h4 {
background-color: greenyellow;
color: black;
}
div {
background-color: lightgray;
padding: 10px 0px 10px 10px;
border: 1px solid black;
margin: 0 auto;
margin-bottom: 10px;
max-width: 400px;
position: relative;
}
/*Large devices*/
@media (min-width: 992px) {
.box1 {
float: left;
margin-left: 20px;
margin-right: 60px;
max-width: 30%
}
.box2 {
float: left;
max-width: 30%;
}
.box3 {
float: right;
max-width: 30%;
margin-right: 20px;
}
h2,
h3,
h4 {
position: relative;
left: 70.2%;
}
}
/*Medium devices*/
@media (min-width: 768px) and (max-width:991px) {
.box1 {
float: left;
max-width: 43%;
margin-bottom: 30px;
margin-left: 40px;
margin-right: 0px;
}
.box2 {
float: right;
max-width: 43%;
margin-bottom: 30px;
margin-right: 40px;
}
.box3 {
margin-top: 40px;
clear: both;
max-width: 100%;
margin-left: 40px;
margin-right: 40px;
}
h2,
h3,
h4 {
position: relative;
left: 70.2%;
}
}
}
/*small devices*/
@media (max-width:767px) {
div {
margin-top: 30px;
}
h2,
h3,
h4 {
position: relative;
left: 100%;
}
}
<!DOCTYPE html>
<html lang="en-CA">
<head>
<meta charset="utf-8">
<title> Our Menu </title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/STYLE.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Our Menu </h1>
<div class="box1">
<h2>Meat</h2>
<p id="p1">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit error quis ab perspiciatis eos inventore recusandae iste itaque numquam facilis, tenetur. Doloribus officiis quae facilis, nisi, ex similique. Animi, perferendis</p>
</div>
<div class="box2">
<h3>Pizza</h3>
<p id="p2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit error quis ab perspiciatis eos inventore recusandae iste itaque numquam facilis, tenetur. Doloribus officiis quae facilis, nisi, ex similique. Animi, perferendis</p>
</div>
<div class="box3">
<h4>Salads</h4>
<p id="p3">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit error quis ab perspiciatis eos inventore recusandae iste itaque numquam facilis, tenetur. Doloribus officiis quae facilis, nisi, ex similique. Animi, perferendis</p>
</div>
</body>
</html>
一个二个一个一个
1条答案
按热度按时间ni65a41a1#
所以,有几件事要回顾一下:
首先,你不需要为相同的层次结构元素使用不同的标题标签,你已经有了第一个标题作为你的标题,因为你没有任何后续的内容,你可以从那里开始使用
<h2>
。我们可以使用CSS specificity来定位你的各种标题来改变你喜欢的颜色,你也可以用id,类来做,实际上有几种方法来处理CSS中的任何布局;这正是我为了简单起见而选择的。
float
已经非常过时了,已经被flex-box techniques所取代,我们将使用它来定位菜单项上的标题。我们可以使用position
属性吗?当然可以。但是如果我们已经在使用flex,我们可以利用它的能力,使用container
元素来放置元素,以容纳所有项目,然后使项目本身也利用flex。我们可以根据需要使用
align-self: flex-end;
来定位<h2>
标记,然后添加一些边距,给予它们远离menuItem
的边缘,有一些喘息的空间。这里可以做的事情还有很多,但我认为这很好地清理了它,您将得到一个更简单、更容易响应的布局,它具有更少的代码和属性。
希望这涵盖了一切。让我知道如果你有任何问题!谢谢你在我的评论后更新你的帖子。确保记住这一点前进;)