您将如何做到这一点:表格还是 CSS? [关闭]

2024-03-16

Puzzle Grinch
(source: sontag.ca http://sontag.ca/gif/grinch.gif)

Part I

这种布局可以非常简单地使用 2 个 HTML 表格(一个嵌套在另一个表格中)甚至使用单个表格来完成。

也可以使用 CSS 来完成,尽管它可能涉及多一点思考.

这可能不是现实世界的布局,但我见过类似的页面。将此视为一个谜语;提高 CSS 技能的练习。

为了让事情变得更有趣,我在一个由两部分组成的小网页中提出了这个问题,名为挑战 https://web.archive.org/web/20121128141851/http://sontag.ca:80/TheChallenge/。我们将检查代码和问题:使用表格或 CSS 进行布局?我们的两个对手并肩作战,为代码霸权而战。

第一部分阐述了如何挑战 https://web.archive.org/web/20121128141851/http://sontag.ca:80/TheChallenge/成为了。我希望你喜欢。

第二部分是决定 https://web.archive.org/web/20090330024144/http://sontag.ca:80/TheChallenge/CSS%20versus%20Tables.html. 你可能会感到惊讶.


Part II

我很惊讶真正好的答案竟然这么快就出现了minutes我发帖后。这是一次令人羞愧的经历。我不想和你一起参加计时赛。

但是,话虽这么说,在仔细检查所提供的解决方案后,我发现 意识到没有一个 CSS 解决方案(包括当时我自己的)能够像所提供的任何一个表格解决方案一样有效。挑战在于 CSS 比表格更好any布局解决方案。

所以我添加了3条新规则(记住,其中一条规则是可以更改的)。这惹恼了一些人。然后我添加了一些关于规则更改原因的丰富多彩的解释。我认为这让他们更加恼火。

  1. 我们的花园周围要有栅栏;一些东西可以让它与它所处的任何沉闷的环境区分开来;而且不太贵,但易于保持清洁。 所以我想要花园周围有一个 1 像素的黑色边框
  2. 每个花园地块的居民(角色)必须是黑色或白色,这取决于他们在花园中表现得最好的。而且它们都是草书血统。其中没有斜体。 ;-)
  3. 花园是可重定位的,也就是说,我可以在页面的任何地方拥有这个花园(没有绝对定位)。

这就是最终输出的样子(背景颜色可选):

alt text
(source: sontag.ca http://sontag.ca/gif/garden.gif)

我对反复无常和最后一刻规则的改变表示歉意。我错了。每个花园的居民都是工匠,手工制作的专家。他们是草书家族,并将他们的风格感归功于italics.

花园必须可重新定位,因为两种花园(桌子和 CSS)都需要coexist在同一页上。我这样说可能是错的position:absolute规则是不允许的。如果你能让他们在这种环境下工作,那么你就会拥有更多的力量。他们肯定会被接受。

我要求在地块周围设置围栏,因为每种花园类型都将种植在橙色背景的乡村,与我们种植的一些花朵的颜色非常相似。

我现在住在荷兰,郁金香季节即将来临。如果您在接下来的几周内飞越荷兰,并且天气晴朗(这里很少见),您下面的风景将看起来与这个愚蠢的练习非常相似。

我并不热衷于橙色,但我确实喜欢并钦佩荷兰人,所以这就是为什么我们有橙色背景,这是对我的东道国的致敬。 :-)


Part III

我已经发布了特德的表答案 https://stackoverflow.com/questions/636712/how-would-you-do-this-tables-or-css/645292#645292来自下面的挑战以及这张图片

alt text
(source: sontag.ca http://sontag.ca/gif/garden2.gif)

因为可以轻松地将居住者添加到花园地块中,而无需触及 CSS 规则 - 一切都会自动居中。

你能用以下方法做到这一点吗 CSS? 你能用……鲱鱼砍倒森林里最强大的树吗?


Update:查理的答案就在这里。


Update: 最终编辑。切换到 STRICT DTD,删除斜体以匹配问题中的图像,并恢复 id 的全彩名称以根据问题上的 OP 评论显示意图,并将 css 中 id 名称的主列按照它们出现的顺序进行排序在 HTML 中。

我还选择不重复使用外部 div 作为白色 7 方块(它没有自己的 div之前的编辑 https://stackoverflow.com/revisions/viewmarkup/850725),因为如果你想使用布局,它就不太实用,并且感觉有点像作弊(尽管从简洁/像素完美的角度来看,我喜欢它的厚颜无耻)。

在这里查看:http://jsbin.com/efidi http://jsbin.com/efidi
在这里编辑:http://jsbin.com/efidi/edit http://jsbin.com/efidi/edit

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>The Challenge</title>
<style type="text/css">
div     { text-align: center; width:175px; height:175px; line-height: 35px;}
div div {         float:left; width: 35px; height: 35px;}
#orange, #maroon,
#blue  , #green  {float:right;}

#orange, #silver {background-color:silver;  width:140px;}
#navy  , #maroon {background-color:maroon; height:140px; line-height:140px;}
         #navy   {background-color:navy  ;}
#green , #red    {background-color:red   ;  width: 70px;}
#yellow, #blue   {background-color:blue  ; height: 70px; line-height: 70px;}
         #yellow {background-color:yellow;}
         #white  {background-color:white ;}
         #green  {background-color:green ;}
         #orange {background-color:orange;}
</style> 
</head> 
<body> 
  <div> 
    <div id="silver">1</div> 
    <div id="maroon">2</div> 
    <div id="navy"  >3</div> 
    <div id="red"   >4</div> 
    <div id="blue"  >5</div> 
    <div id="yellow">6</div> 
    <div id="white" >7</div>
    <div id="green" >8</div> 
    <div id="orange">9</div> 
  </div>
</body></html>

旁白:如果可以的话,我也许会多放一点空白,但这是在 SO 上的代码块开始获得滚动条之前的限制,我选择将其全部显示在屏幕上。

注:我借用了line-height修复自Tyson https://stackoverflow.com/questions/636712/how-would-you-do-this-with-css/636780#636780(谁是第一个得到正确渲染答案的人)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您将如何做到这一点:表格还是 CSS? [关闭] 的相关文章

  • pandas 在单元格中缩写字典

    我有一个相当复杂的嵌套字典 它使用 pandas 很好地打印为 html 但是 有一个字典作为打印在单元格中的值之一 如下所示 pd set option display max colwidth 1 已设置 所以这不应该是问题 这是产生问
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • 如何将 XML 文档嵌入到 XHTML 文档中?

    例如 我如何嵌入
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • Android:比 android:ellipsize="end" 更好的东西可以将“...”添加到截断的长字符串中?

    这个性质 https stackoverflow com questions 1666736 android textview automatically truncate and replace last 3 char of string
  • 指南针字体输出错误的字体文件路径

    font face font family HelveticaNeueLTStd Lt src url css fonts HelveticaNeueLTStd Lt otf format opentype 这是我的指南针代码的输出 inc
  • Safari 中的 css3 边框半径动画过渡不起作用

    尝试在 Safari 中对图像的边框半径进行 css3 轻松过渡 它只是有点闪烁进入悬停状态 而不是平滑过渡 任何帮助深表感谢 我的代码如下 CSS all a hover img webkit border radius 50 moz b
  • 如何在不使用变换或顶部/左侧的情况下转换列表中项目的位置

    有一天我偶然发现一个例子 https codepen io itslit pen gvKrMY它使用 Vue js 但我的问题更多是关于 Vue 用于实现状态之间转换的 CSS 和 HTML 卡片暂时获得等级 shuffleMedium m
  • 如何选择具有“A”类但不具有“B”类的 div?

    我有一些 div div class A Target div div class A B NotMyTarget div div class A C NotMyTarget div div class A D NotMyTarget di
  • CSS 类命名约定

    在网页上 有两个控件块 主要和次要 大多数人会使用什么类名 选择一 div class primary controls div
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 图像背景不透明度不影响边框

    如何设置背景不透明度而不影响边框线不透明度 我找到的解决方案没有帮助 div class selected img src assets img image product 1 thumbnail jpg alt product 1 thu
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 如何创建适合屏幕宽度的等宽/高框? [复制]

    这个问题在这里已经有答案了 我正在尝试建立一个网站 其中有很多宽度和高度相等的框 例如 我有一个页面 其中并排有两个相同大小的框 简单的解决方案是将宽度和高度设置为 50vw 这在出现滚动条之前效果很好 我已经用谷歌搜索了几个小时 但无法理
  • 使用css bootstrap时如何仅向一列添加右边框?

    我正在尝试使用CSS引导框架 http getbootstrap com css tables在我的项目中 我正在使用带有以下类的表table table bordered table striped 我想删除除第一列之外的所有列的边框 这
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad

随机推荐