gpt4 book ai didi

html - 如何仅使用 CSS(无 javascript)设置动态响应 div?

转载 作者:行者123 更新时间:2023-11-28 08:34:33 25 4
gpt4 key购买 nike

基本上我想要的是我的主 div 根据类别 div 的高度或内容(以较高者为准)尽可能多地拉伸(stretch);和我的产品图片。 This is the ominous site

我的问题如下:

  • 内容 div 和类别 div 都是主 div 的子元素,但产品图片会浮出其中。最终在缩放时它也会向右浮动。

  • 因此,如果我将#main 宽度设置为一个百分比,则缩放会变得非常愚蠢,(缩小不会使图片变小,div 或 Logo 也不会变小,只会使类别中的按钮变小。但是,如果我设置为常量,那很好,但它又会如何响应?

  • 为什么类别的边框不在正确的位置? (垂直)

  • 在响应式移动 View 中,图片再次位于所有内容之上,并且有一个滚动条,当我禁用缩放时它应该显示全屏。我一定是在这里遗漏了一些重要的东西。此外,页脚位于所有内容的中间,页眉和类别之间有一个额外的黑色部分,但这些元素中没有任何边距或填充。 See it here

提前致谢!

ps.:我尝试了很多事情,从改变高度、宽度、调整边距、溢出开始,但找不到如何正确执行的线索。pps:我在这里插入了代码,所以你不必在上面的网站上打开源代码,以便更快地检查。

body {
background-color: #161718;
background-image: url('../pictures/mdbg.png');
background-position: center;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: 100% auto;
margin: 0px;
padding: 0px;
}
header {
width: 100%;
height: 60px;
background: linear-gradient(to bottom, rgba(230, 16, 16, 1) 1%, rgba(136, 7, 8, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
}
#main {
margin: 0 auto;
width: 60%;
background-color: #1d1e20;
border-right: 3px solid #880708;
border-left: 3px solid #880708;
border-bottom: 3px solid #880708;
height: 100%;
min-height: 200px;
position: relative;
}
#logo {
margin: 20%;
white-space: nowrap;
overflow: hidden;
width: 40%;
}
#categories {
width: 15%;
border-right: 3px solid #880708;
height: 100%;
padding: 0;
float: left;
font: 12px Verdana;
list-style-type: none;
text-align: center;
white-space: nowrap;
}
ul#categories a {
background: linear-gradient(to bottom, rgba(193, 32, 38, 1) 1%, rgba(104, 12, 13, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
text-shadow: 1px 1px 0 #000000;
border-radius: 2px;
color: white;
display: inline-block;
font-size: 1.3em;
margin: 4px;
padding: 2px 2px;
text-decoration: none;
width: 80%;
}
#content {
float: right;
width: 85%;
height: 100%;
position: absolute;
margin: 0 auto;
}
#content img {
width: 26%;
position: relative;
top: 5%;
left: 25%;
}
footer {
width: 100%;
height: 20px;
background-color: black;
color: white;
text-align: center;
border-top: 3px solid #880708;
position: absolute;
bottom: 0;
}
/* Laptop/Tablet (1366px) */

@media only screen and (min-width: 1025px) and (max-width: 1366px) and (orientation: landscape) {
header {
width: 100%;
}
#main {
width: 1000px;
}
footer {
width: 100%;
}
#categories {
width: 15%;
}
#content {
width: 85%;
}
}
/* Laptop/Tablet (1024px) */

@media only screen and (min-width: 481px) and (max-width: 1024px) and (orientation: landscape) {
header {
width: 100%;
}
#main {
width: 100%;
border: none;
}
footer {
width: 100%;
}
#categories {
width: 20%;
}
#content {
width: 80%;
top: 5%;
left: 38%;
}
}
/* Tablet Portrait (768px) */

@media only screen and (min-width: 321px) and (max-width: 1024px) and (orientation: portrait) {
header {
width: 100%;
height: 10%;
padding: 0px;
}
body {
background-image: none;
}
#main {
border: 0px;
width: 100%;
min-width: 200px;
}
footer {
width: 100%;
position: absolute;
}
#logo {
display: none;
}
#categories {
width: 100%;
border: 0px;
}
ul#categories a {
width: 100%;
font-size: 2.6em;
margin: 0 auto;
padding-top: 10px;
padding-bottom: 10px;
display: inline-block;
}
#content {
width: 100%;
margin: 0 auto;
left: 15%;
overflow: scroll;
}
#content img {
width: 80%;
position: relative;
top: 5%;
left: 0%;
}
}
/* Phone Landscape (480px) */

@media only screen and (min-width: 321px) and (max-width: 480px) and (orientation: landscape) {
.box {
float: left;
}
header {
width: 100%;
height: 40px;
}
main {
width: 100%;
}
footer {
width: 100%;
}
#categories {
width: 100%;
}
#content {
width: 100%;
}
}
/* Phone Portrait (320px) */

@media only screen and (max-width: 320px) {
.box {
float: left;
}
header {
width: 100%;
height: 40px;
}
main {
width: 100%;
}
footer {
width: 100%;
}
#categories {
width: 100%;
}
#content {
width: 100%;
}
}
<html>

<head>
<link rel="stylesheet" type="text/css" href="www.verychard.com/responsive/styles/style.css">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
<!--320 mobile devices cant zoom-->
<title>Webshop</title>
</head>

<body>

<header></header>

<div id="main">


<ul id="categories">
<img id="logo" src="http://www.verychard.com/responsive/kecske.png" />
<li><a>Motherboard</a>
</li>
<li><a>Processor</a>
</li>
<li><a>Memory</a>
</li>
<li><a>FSP</a>
</li>
<li><a>Whatever</a>
</li>
<li><a>Monitor</a>
</li>
<li><a>Motherboard</a>
</li>
<li><a>Processor</a>
</li>
<li><a>Memory</a>
</li>
<li><a>FSP</a>
</li>
<li><a>Whatever</a>
</li>
<li><a>Monitor</a>
</li>
</ul>

<div id="content">
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
<img src="http://www.verychard.com/responsive/termek.png" alt="picture" />
</div>


<footer>All rights reserved Kecske PC 2015</footer>
</div>

</body>

</html>

最佳答案

添加了一个普遍接受的clearfix版本,并删除了很多定位。最重要的是你的边框宽度是 15% + 85% = 100% + 3px,所以它迫使元素下到下一行,这就是为什么我怀疑你需要绝对定位才能让它留在你想要的地方,所以现在是 15% 和 75%。这不是完美的,但我希望这是一个开始。

body {
background-color:#161718;
background-image:url('../pictures/mdbg.png');
background-position:center;
background-repeat:no-repeat;
background-attachment: fixed;
background-size: cover;
margin: 0px;
padding: 0px;
height: 100%;
}

header{
width:100%;
height: 60px;
background: linear-gradient(to bottom, rgba(230, 16, 16, 1) 1%, rgba(136, 7, 8, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
}

.clearfix:after {
content: "";
display: table;
clear: both;
}

#main{
margin: 0 auto;
width: 60%;
background-color: #1d1e20;
border: 3px solid #880708;
border-top: 0px none transparent;
min-height: 200px;
position:relative;
}

#logo{
margin: 20%;
white-space:nowrap;
overflow:hidden;
width: 40%;
}

#categories{
width: 15%;
border-right: 3px solid #880708;
margin: 0;
height: 100%;
padding: 0;
float:left;
font: 12px Verdana;
list-style-type: none;
text-align:center;
white-space:nowrap;
}


ul#categories a {
background: linear-gradient(to bottom, rgba(193, 32, 38, 1) 1%, rgba(104, 12, 13, 1) 100%) repeat scroll 0 0 rgba(0, 0, 0, 0);
text-shadow: 1px 1px 0 #000000;
border-radius: 2px;
color: white;
display: inline-block;
font-size: 1.3em;
margin: 4px;
padding: 2px 2px;
text-decoration: none;
width: 80%;
}

#content{
float:right;
width:75%; /* 100% - 15% - 3px > 85% so mind the gap */
height: 100%;
margin: 0;
padding: 0;
}

#content img{
width: 26%;
}

footer {
width: 100%;
height: 20px;
background-color: black;
color:white;
text-align:center;
border-top: 3px solid #880708;
bottom: 0;
}



/* Laptop/Tablet (1366px) */
@media only screen and (min-width: 1025px) and (max-width: 1366px) and (orientation: landscape) {
header { }
#main { width: 1000px; }
footer { }
#categories { }
#content { }
}

/* Laptop/Tablet (1024px) */
@media only screen and (min-width: 481px) and (max-width: 1024px) and (orientation: landscape) {
header { }
#main { width: 100%; border:none;}
footer { }
#categories { width: 20%; }
#content { width: 70%; }
}

/* Tablet Portrait (768px) */
@media only screen and (min-width: 321px) and (max-width: 1024px) and (orientation: portrait) {

header { height: 10%; padding: 0px;}
body {background-image:none;}
#main { border:0px; width: 100%; min-width: 200px;}
footer { }
#logo {display:none;}
#categories { width: 100%; border:0px;}
ul#categories a { width:100%; font-size:2.6em; margin: 0 auto; padding-top:10px; padding-bottom: 10px; display: inline-block;}
#content {width: 100%; margin: 0 auto; left: 15%; overflow:scroll; padding-top: 15px;}
#content img{width: 80%;}

}

/* Phone Landscape (480px) */
@media only screen and (min-width: 321px) and (max-width: 480px) and (orientation: landscape) {
.box { float: left; }
header {height: 40px;}
main { width: 100%; }
footer { }
#categories { width: 100%; }
#content { width: 100%; }
}

/* Phone Portrait (320px) */
@media only screen and (max-width: 320px) {
.box { float: left; }
header { height: 40px;}
main { width: 100%; }
footer { }
#categories { width: 100%;}
#content { width: 100%; }
}

对 html 进行一些小改动

<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/style.css">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <!--320 mobile devices cant zoom-->
<title>Webshop</title>
<style type="text/css"></style>
</head>

<body>

<header></header>

<div id="main" class="clearfix">


<ul id="categories">
<img id="logo" src="kecske.png">
<li><a>Motherboard</a></li>
<li><a>Processor</a></li>
<li><a>Memory</a></li>
<li><a>FSP</a></li>
<li><a>Whatever</a></li>
<li><a>Monitor</a></li>
<li><a>Motherboard</a></li>
<li><a>Processor</a></li>
<li><a>Memory</a></li>
<li><a>FSP</a></li>
<li><a>Whatever</a></li>
<li><a>Monitor</a></li>
</ul>

<div id="content">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">
<img src="termek.png" alt="picture">

</div>


<div class="clearfix"></div>
<footer>All rights reserved Kecske PC 2015</footer>
</div>


<style>.tb_button {padding:1px;cursor:pointer;border-right: 1px solid #8b8b8b;border-left: 1px solid #FFF;border-bottom: 1px solid #fff;}.tb_button.hover {borer:2px outset #def; background-color: #f8f8f8 !important;}.ws_toolbar {z-index:100000} .ws_toolbar .ws_tb_btn {cursor:pointer;border:1px solid #555;padding:3px} .tb_highlight{background-color:yellow} .tb_hide {visibility:hidden} .ws_toolbar img {padding:2px;margin:0px}</style>
</body>
</html>

编辑:修复了一些格式(不要复制表单控制台,这对您的强制症不利)。

关于html - 如何仅使用 CSS(无 javascript)设置动态响应 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com