javascript - 如何在 td 中 float div

标签 javascript css html css-float html-table

我有两个代码几乎相同的页面。两者都有这个 CSS 代码和两个 div:

<style type="text/css">
.visfarve { position:relative; float:left; padding:5px; border:1px solid #666; }
.farver { border:1px solid black; width:75px; height:10px; }
.valgtfarve { width:95px; height:15px; display:block; background-color:white; text-align:center; }
</style>

<div id="vis" style="display:block; font-size:11px;">
  <a href="javascript:colors(1);">Vis farver</a>
</div>
<div id="skjul" style="display:none; font-size:11px;">
  <a href="javascript:colors(0);">Skjul farver</a>
</div>

一个页面有这样的构造:

<table style="width:730px;">
  <tr>
    <td width="510px">
      <div id="visfarve" style="display:none; margin-top:11px;">&npsp;</div>
    </td>
    <td id="viser" style="border-radius:10px; width:220px; height:inherit"></td>
  </tr>
</table>

其他页面有这个障碍:

<div id="visfarve" style="display:none; margin-top:11px;">&nbsp;</div>
<div id="viser" style="margin-top:50px; border-radius:10px; display:none;">&nbsp;</div>

它们共享这两个 js 函数:

var farve1 = ["3D3D34","463834","3F383D","433839","333F44","3B3B40","38413D","304344","483C33","313F48","37463B","35453F"];
var farve2 = ["S8505-Y20R","7812-Y87R","S8010-R30B","S8010-R10B","8108-R93B","8207-R38B","S8502-G","S8010-B30G","S8010-Y70R","S8010-R90B","S8010-G10Y","S8010-B90G"];

function colors(vis) {
  var setheight = 0;
  for(i=farve1.length-1;i>-1;i--) { skriv += "<div class='visfarve' onmouseover=\"document.getElementById('viser').style.background = '#" + farve1[i] + "';\" onmouseout=\"document.getElementById('viser').style.background = 'white';\" onclick='valgtfarve(\"" + farve2[i] + "\",\"#" + farve1[i] + "\");'><table><tr><td class='farver' title='Klik for at vælge' style='background-color:#" + farve1[i] + ";'></td></tr><tr><td><p>" + farve2[i] + "</p></td></tr></table></div>"; setheight += 10; }
  document.getElementById('visfarve').innerHTML = skriv;

  if(vis) { 
    document.getElementById('vis').style.display = "none";
    document.getElementById('skjul').style.display = "block"; 
    document.getElementById('visfarve').style.display = "block";
    document.getElementById('viser').style.display = "block";
    document.getElementById('viser').style.height = setheight + "px";
  }
  else {
    document.getElementById('vis').style.display = "block";
    document.getElementById('skjul').style.display = "none";
    document.getElementById('visfarve').style.display = "none";
    document.getElementById('viser').style.display = "none";
    document.getElementById('viser').style.height = 0 + "px";
  }
}

function valgtfarve(kode, farve) {
  if(!valgt) { 
    if(confirm("Tones en maling kan den ikke returneres.\nAccepter fraskrivelse af returret for tonet maling?")) { valgt = true; } 
    else {
      document.getElementById('vis').style.display = "block";
      document.getElementById('skjul').style.display = "none";
      document.getElementById('viser').style.height = "0px";
      document.getElementById('visfarve').style.display = "none"; return false;
    }}
  document.getElementById('valgtfarve').value = kode;
  document.getElementById('valgtfarve').style.backgroundColor = farve;
}

当我使用 div 构造时, float div 彼此相邻,每行有 5 个 div,并在到达容器 div 边缘时中断。但是,在 td 内部,div 坚持每个 div 都具有 td 的整个宽度 - 导致每行只有一个 div。

如何在 td 中获取 div 以保持宽度并向左浮动?

最佳答案

让我们从 jsFiddle 链接开始:Here

我认为您在发布问题时是一种很好的做法。

请解释问题出在哪里,在 jsfiddle 页面中我没有看到你的错误。

我只做了很少的修改,没有相关的代码改动。 我只定义了变量

var skriv = "";

关于javascript - 如何在 td 中 float div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275667/

相关文章:

html - 标题和描述的CSS设计代码是什么?

javascript - FullCalendar:在辅助 JS 文件中指定额外回调

javascript - 我可以在 JS 对象中设置文本样式吗?

javascript - typescript 返回对象或数组错误

javascript - 如何使用 Php 中的选择选项获取 GridView 中的数据

html - 带边框和 z-index 的 CSS 下拉菜单

javascript - 有人可以解释为什么这段代码可以使 div 在滚动后保持在顶部吗?

html - 外部容器上的 CSS 边框半径

html - 为什么对 html 表单使用有序列表来提高可访问性?

javascript - 如何播放页面上的每个音频元素(HTML、JQuery、Javascript)