gpt4 book ai didi

html - 通过 CSS/CSS 装饰 DIV 并使用全页宽度 :before and :after

转载 作者:可可西里 更新时间:2023-11-01 13:38:21 25 4
gpt4 key购买 nike

我正在编写一个看起来像代码一样的页面

<div class="green">  
<span class="orange">s1</span>
<span class="orange">s2</span>
</div>

但这应该通过 CSS 格式化,例如: Layout explanation

  • 周围的黑框显示浏览器中的完整页面。 (想想<body></body>)
  • 红色框架是一个固定宽度和固定高度的基本空白空间,应由 CSS 添加 .green:before (我正在使用它的能力来格式化它的边框以获得视觉效果)
  • 绿色框显示实际内容,应尽可能宽以包含<span>。在一行中
  • 蓝色框架应该由 CSS 创建 .green:after , 具有固定高度并且应占据页面右边框之前的所有空间 - 即它必须具有可变宽度。

所需的浏览器是最新版本的现代浏览器(Firefox、Chrome、Safari、Opera)。无需照顾IE。不过,移动浏览器会很棒。

我怎样才能做到这一点? (我所有的尝试迟早都会失败...)

带有此示例代码的 jsFiddle 位于 http://jsfiddle.net/X2MDG/

最佳答案

恐怕没有办法满足所有您的限制。似乎没有 CSS 解决方案的主要内容是:

  • 只控制绿色位的宽度不会影响红色 :before 和蓝色 :after 内容的宽度。正如您在问题的评论中提到的,使用不同的 DOM 结构不是一种选择。
  • 蓝色(:after)内容应该占据绿色(主要)内容不需要的所有空间。
  • 红色/蓝色的固定高度可能需要对整个 div 下面的元素进行一些清理。

因此,据我所知,您提出的问题没有 100% 令人满意的答案。不管怎样,这是我研究这个问题的代码,也许它可以帮助你或其他人在这个问题上绊倒。参见 this jsfiddle或以下代码:

<div id="page">
<div class="green">
<span>Orange 1.</span>
<span>Orange 2. Which can be really wide.</span>
</div>
<p style="clear: both;">Black is the page. Clearing is
needed because the red and blue boxes are not in the
flow but do have quite some height.</p>
</div>

CSS:

div#page { 
border: 2px solid black;
width: 80%;
padding: 2px;
}

div.green:before {
content: 'red / before';
border: 2px solid red;
float: left;
display: inline-block;
width: 140px;
height: 200px;
}

div.green {
border: 2px solid green;
}

div.green:after {
content: 'blue / after';
border: 2px solid blue;
display: inline-block;
float: right;
height: 60px;
}

div.green span {
border: 2px solid orange;
}

关于html - 通过 CSS/CSS 装饰 DIV 并使用全页宽度 :before and :after,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10652625/

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