Граница вокруг определенных строк в таблице?

conio.h - нестандартный заголовок, предоставленный компилятором Turbo C Borland, который является несоответствующим компилятору C. Cygwin, который является эмуляцией окон unix-подобной среды, не имеет его (действительно, я не знаю другого компилятора, который предоставляет conio.h).

Can someone please tell me how to resolve this issue.

Лучший способ разрешить это not использовать его вообще :)

Вместо этого вы можете использовать ncurses , если вы хотите что-то, что обеспечивает аналогичные функции и скомпилировать его с помощью:

gcc test.c -lncurses 

119
задан Legends 2 March 2017 в 10:54
поделиться

4 ответа

Спасибо всему, что ответило! Я попробовал все решения, представленные здесь, и я сделал больше поиска в Интернете для других возможных решений, и я думаю, что нашел тот, который это обещает:

tr.top td {
  border-top: thin solid black;
}

tr.bottom td {
  border-bottom: thin solid black;
}

tr.row td:first-child {
  border-left: thin solid black;
}

tr.row td:last-child {
  border-right: thin solid black;
}
<html>

<head>
</head>

<body>

  <table cellspacing="0">
    <tr>
      <td>no border</td>
      <td>no border here either</td>
    </tr>
    <tr class="top row">
      <td>one</td>
      <td>two</td>
    </tr>
    <tr class="bottom row">
      <td>three</td>
      <td>four</td>
    </tr>
    <tr>
      <td colspan="2">once again no borders</td>
    </tr>
    <tr class="top bottom row">
      <td colspan="2">hello</td>
    </tr>
    <tr>
      <td colspan="2">world</td>
    </tr>
  </table>

</body>

</html>

Вывод:

enter image description here

Вместо того, чтобы иметь необходимость добавить top, bottom, left, и right классы к каждому <td>, все, что я должен сделать, добавляют top row к вершине <tr>, bottom row к нижней части <tr>, и row к каждому <tr> промежуточный. Есть ли что-то не так с этим решением? Есть ли какие-либо межплатформенные проблемы, о которых я должен знать?

52
ответ дан Legends 2 March 2017 в 10:54
поделиться

На основе Вашего требования, чтобы Вы хотели поместить границу вокруг произвольного блока ячеек MxN, действительно нет никакого более легкого способа сделать его, не используя JavaScript. Если Ваши ячейки починены с Вами, может использовать плавания, но это проблематично по другим причинам. то, что Вы делаете, может быть утомительным, но это прекрасно.

хорошо, если Вы интересуетесь решением JavaScript, с помощью jQuery (мой предпочтительный подход), Вы заканчиваете с этой довольно страшной частью кода:

<html>
<head>

<style type="text/css">
td.top { border-top: thin solid black; }
td.bottom { border-bottom: thin solid black; }
td.left { border-left: thin solid black; }
td.right { border-right: thin solid black; }
</style>
<script type="text/javascript" src="jquery-1.3.1.js"></script>
<script type="text/javascript">
$(function() {
  box(2, 1, 2, 2);
});

function box(row, col, height, width) {
  if (typeof height == 'undefined') {
    height = 1;
  }
  if (typeof width == 'undefined') {
    width = 1;
  }
  $("table").each(function() {
    $("tr:nth-child(" + row + ")", this).children().slice(col - 1, col + width - 1).addClass("top");
    $("tr:nth-child(" + (row + height - 1) + ")", this).children().slice(col - 1, col + width - 1).addClass("bottom");
    $("tr", this).slice(row - 1, row + height - 1).each(function() {
      $(":nth-child(" + col + ")", this).addClass("left");
      $(":nth-child(" + (col + width - 1) + ")", this).addClass("right");
    });
  });
}
</script>
</head>
<body>

<table cellspacing="0">
  <tr>
    <td>no border</td>
    <td>no border here either</td>
  </tr>
  <tr>
    <td>one</td>
    <td>two</td>
  </tr>
  <tr>
    <td>three</td>
    <td>four</td>
  </tr>
  <tr>
    <td colspan="2">once again no borders</td>
  </tr>
</tfoot>
</table>
</html>

я счастливо возьму предложения на более легких способах сделать это...

1
ответ дан cletus 2 March 2017 в 10:54
поделиться

Единственным другим путем я могу думать, чтобы сделать это, должен включить каждую из строк, Вам нужна граница вокруг во вложенной таблице. Это сделает границу легче сделать, но потенциально создаст другие проблемы расположения, необходимо будет вручную установить ширину на ячейках таблицы и т.д.

подход может быть лучшим в зависимости от другого расположения rerquirements, и предложенный подход здесь является просто возможной альтернативой.

<table cellspacing="0">  
    <tr>    
        <td>no border</td>    
        <td>no border here either</td>  
    </tr>  
    <tr>
        <td>
             <table style="border: thin solid black">
                  <tr>    
                        <td>one</td>    
                        <td>two</td>  
                  </tr>  
                  <tr>    
                      <td>three</td>    
                      <td>four</td>  
                  </tr>  
             </table>
         </td>
    </tr>
    <tr>    
         <td colspan="2">once again no borders</td>  
    </tr>  
    <tr>
        <td>
             <table style="border: thin solid black">
                  <tr>    
                        <td>hello</td>  
                   </tr>
             </table>
         </td>
    </tr>
    <tr>    
         <td colspan="2">world</td>  
    </tr>
</table>
1
ответ дан sipwiz 2 March 2017 в 10:54
поделиться

Вот подход с помощью tbody элементы, которые могли быть способом сделать это. Вы не можете установить границу на tbody (то же, поскольку Вы не можете на TR), но можно выбрать цвет фона. Если эффект, которого Вы желаете достигнуть, может быть получен с цветом фона на группах строк вместо границы, это будет работать.

<table cellspacing="0">  
    <tbody>
        <tr>    
            <td>no border</td>    
            <td>no border here either</td>  
        </tr>  
    <tbody bgcolor="gray">
        <tr>    
            <td>one</td>    
            <td>two</td>  
        </tr>  
        <tr>    
            <td>three</td>    
            <td>four</td>  
        </tr>  
    <tbody>
        <tr>    
             <td colspan="2">once again no borders</td>  
        </tr>  
    <tbody bgcolor="gray">
        <tr>    
             <td colspan="2">hello</td>  
        </tr>
    <tbody>
    <tr>    
         <td colspan="2">world</td>  
    </tr>
</table>
3
ответ дан sipwiz 2 March 2017 в 10:54
поделиться
  • 1
    Значение по умолчанию AFAIK TaskScheduler использует ThreadPool и нет никакого различия между ними, когда Вы хотите многоядерную поддержку. Парень даже сделал некоторые тесты: stackoverflow.com/a/5219311/152291 – prostynick 19 July 2013 в 10:11