浮动这些元素的正确方法是什么

发布于 2024-10-03 01:49:23 字数 2030 浏览 0 评论 0原文

我有这个标记

<dt id="dt0">    &nbsp;                                 </dt>
<dd id="dd0dd">  <textarea id="dd0"></textarea>         </dd>

<dt id="dt1">    &nbsp;                                 </dt>
<dd id="dd1dd">  <input id="dd1" type="hidden">         </dd>

<dt id="dt2">    <label for="dd2">Dd2 Label:</label>    </dt>
<dd id="dd2dd">  <input id="dd2" type="text">           </dd>

<dt id="dt3">    <label for="dd3">Dd3 Label:</label>    </dt>
<dd id="dd3dd">  <input id="dd3" type="text">           </dd>

<dt id="dt4">    <label for="dd4">Dd4 Label:</label>    </dt>
<dd id="dd4dd">  <input id="dd4" type="text">           </dd>

,我需要浮动它,以便它看起来像这样(注意 dd1 是一个隐藏元素)

_________________________________                ________________________
|                               |     Dd2 Label  |                       |
|                               |                |_______________________|
|                               |     
|                               |                ________________________
|                               |     Dd3 Label  |                       |
|                               |                |_______________________|
|                               |
|                               |                ________________________
|                               |     Dd4 Label  |                       |
|_______________________________|                |_______________________|

CSS 并不是我真正的东西,但我已经尝试了一大堆东西并得到了一些工作,但它仍然看起来不对。这是我现在拥有的CSS。

#dd0dd {
    float:left;
}
#dt1, #dt2, #dt3, #dt4{ 
    float:left; 
    clear:right; 
    width:80px; 
}
#dd1dd, #dd2dd, #dd3dd, #dd4dd {
    float:right;
    clear:right;
}

有人可以告诉我如何改进这个 CSS 以使其看起来正确吗?

编辑:我希望我可以更改标记以使用表格或不使用表格,但它是自动生成的并且无法更改。

I have this markup

<dt id="dt0">                                      </dt>
<dd id="dd0dd">  <textarea id="dd0"></textarea>         </dd>

<dt id="dt1">                                      </dt>
<dd id="dd1dd">  <input id="dd1" type="hidden">         </dd>

<dt id="dt2">    <label for="dd2">Dd2 Label:</label>    </dt>
<dd id="dd2dd">  <input id="dd2" type="text">           </dd>

<dt id="dt3">    <label for="dd3">Dd3 Label:</label>    </dt>
<dd id="dd3dd">  <input id="dd3" type="text">           </dd>

<dt id="dt4">    <label for="dd4">Dd4 Label:</label>    </dt>
<dd id="dd4dd">  <input id="dd4" type="text">           </dd>

which I need to float so that it looks like this (notice that dd1 is a hidden element)

_________________________________                ________________________
|                               |     Dd2 Label  |                       |
|                               |                |_______________________|
|                               |     
|                               |                ________________________
|                               |     Dd3 Label  |                       |
|                               |                |_______________________|
|                               |
|                               |                ________________________
|                               |     Dd4 Label  |                       |
|_______________________________|                |_______________________|

CSS isn't really my thing, but I've tried a whole bunch of stuff and got something working, but it still doesn't look right. Here's the CSS I have now.

#dd0dd {
    float:left;
}
#dt1, #dt2, #dt3, #dt4{ 
    float:left; 
    clear:right; 
    width:80px; 
}
#dd1dd, #dd2dd, #dd3dd, #dd4dd {
    float:right;
    clear:right;
}

Can someone tell me how I can improve this CSS to make it look right.

Edit: I wish I could change the markup to use tables or what not, but it's auto-generated and can't be changed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

习ぎ惯性依靠 2024-10-10 01:49:23
#dt1,
#dt0 {
    display: none;
}

#dd0dd {
    float:left;
}

#dt1, #dt2, #dt3, #dt4{ 
    float:left; 
    width:80px; 
}

#dd1dd, #dd2dd, #dd3dd, #dd4dd {
    clear:right;
}

设置边距等

#dt1,
#dt0 {
    display: none;
}

#dd0dd {
    float:left;
}

#dt1, #dt2, #dt3, #dt4{ 
    float:left; 
    width:80px; 
}

#dd1dd, #dd2dd, #dd3dd, #dd4dd {
    clear:right;
}

Set margins etc.

巴黎盛开的樱花 2024-10-10 01:49:23

它包含 dl 标签,需要为布局设置宽度才能工作

css 浮动是 css 最令人困惑的概念之一(我教这些东西,它的最难向学生解释的事情之一)。但我向你保证,一旦你了解了 CSS,你就再也不想编写表格了,除了表格数据,表格对于表格来说非常棒。

it includes the dl tag, which needs to have a width set for the layout to work

css floats are one of the most confusing concepts of css (i teach the stuff, and its one of the hardest things to explain to students). but i promise you, once you get to know css, you'll never want to code a table again, except for well, tabular data, for which tables are awesome.

神妖 2024-10-10 01:49:23

您必须使用

标签吗?如果您要使用它们,您应该用

标签将它们全部包围起来,但是由于您希望文本框与标签并排而不是在它们下方缩进,因此将两者(您的标签和输入)包围在 div 中不是更容易吗?这将为您提供您正在寻找的布局。

Do you have to use <dt> and <dd> tags? If you're gonna use them you should surround them all of them with a <dl> tag, but since you want your textboxes side-by-side with your label instead of indented below them, wouldn't it just be easier to surround both (your label and input) in a div? This will get you the layout you're looking for.

友谊不毕业 2024-10-10 01:49:23

像这样的某种令人厌恶的东西可能会起作用,但它非常脆弱,各种宽度和高度是使用“摆弄它直到它起作用”技术确定的:

#dt0 {
    display: none;
}

#dd0 {
    height: 100px;
}

#dd0dd {
    float: left;
}

#dt1, #dt2, #dt3, #dt4{ 
    float: left; 
    clear: right;
    width: 80px; 
    margin-left: 100px;
}

#dd1dd, #dd2dd, #dd3dd, #dd4dd {
    float: right;
}

这适用于 Safari 中的 jsfiddle.net,其他任何地方的 YMMV。我现在感觉很脏。

Some sort of abomination like this might work but it is very fragile, the various widths and heights were determined using the "fiddle with it until it works" technique:

#dt0 {
    display: none;
}

#dd0 {
    height: 100px;
}

#dd0dd {
    float: left;
}

#dt1, #dt2, #dt3, #dt4{ 
    float: left; 
    clear: right;
    width: 80px; 
    margin-left: 100px;
}

#dd1dd, #dd2dd, #dd3dd, #dd4dd {
    float: right;
}

This works on jsfiddle.net in Safari, YMMV anywhere else. I feel dirty now.

感情旳空白 2024-10-10 01:49:23

无表格 CSS 见鬼去吧,如果你只是把它全部放在一个表,然后您也不必应对浏览器的不一致问题。

我们甚至还有一些盟友:

这是一个即兴解决方案:

<table>
  <tr><td rowspan=3>
    <dt id="dt0">                                      </dt>
    <dd id="dd0dd">  <textarea id="dd0"></textarea>         </dd>
  </td></tr>
  <tr style='display:none'><td>
    <dt id="dt1">                                      </dt>
    <dd id="dd1dd">  <input id="dd1" type="hidden">         </dd>
  </td></tr>
  <tr><td>
    <dt id="dt2">    <label for="dd2">Dd2 Label:</label>    </dt>
    <dd id="dd2dd">  <input id="dd2" type="text">           </dd>
  </td></tr>
  <tr><td>
    <dt id="dt3">    <label for="dd3">Dd3 Label:</label>    </dt>
    <dd id="dd3dd">  <input id="dd3" type="text">           </dd>
  </td></tr>
  <tr><td>
    <dt id="dt4">    <label for="dd4">Dd4 Label:</label>    </dt>
    <dd id="dd4dd">  <input id="dd4" type="text">           </dd>
  </td></tr>
</table>

To hell with tableless CSS, you would have been done weeks ago if you just put it all in a table, and then you wouldn't have to fight browser inconsistencies either.

We even have a few allies:

Here's an off the cuff solution:

<table>
  <tr><td rowspan=3>
    <dt id="dt0">                                      </dt>
    <dd id="dd0dd">  <textarea id="dd0"></textarea>         </dd>
  </td></tr>
  <tr style='display:none'><td>
    <dt id="dt1">                                      </dt>
    <dd id="dd1dd">  <input id="dd1" type="hidden">         </dd>
  </td></tr>
  <tr><td>
    <dt id="dt2">    <label for="dd2">Dd2 Label:</label>    </dt>
    <dd id="dd2dd">  <input id="dd2" type="text">           </dd>
  </td></tr>
  <tr><td>
    <dt id="dt3">    <label for="dd3">Dd3 Label:</label>    </dt>
    <dd id="dd3dd">  <input id="dd3" type="text">           </dd>
  </td></tr>
  <tr><td>
    <dt id="dt4">    <label for="dd4">Dd4 Label:</label>    </dt>
    <dd id="dd4dd">  <input id="dd4" type="text">           </dd>
  </td></tr>
</table>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文