Создание заголовка двухстрочной таблицы в HTML

Я пытаюсь настроить таблицу, чтобы заголовок состоял из двух строк. В верхней строке будет поле ввода, позволяющее пользователю фильтровать таблицу. На втором будут названия столбцов. Пока что самое близкое, что я могу получить, это следующее:

<thead>
    <tr class = "bg-primary">
        <th colspan = "5">
            <input id = "searchBox" class = "form-control" placeholder = "Search by name">
        </th>
    </tr>
    <tr class = "bg-primary text-white">
        <th scope = "col">Name</th>
        <th scope = "col">Street Address</th>
        <th scope = "col">City</th>
        <th scope = "col">State</th>
        <th scope = "col">Phone</th>
    </tr>
</thead>

Однако до сих пор мне не удалось найти способ избавиться от белой границы между двумя строками. Я хочу, чтобы это выглядело как один заголовок, поэтому я пытаюсь найти способ либо перекрыть две строки, либо сделать границу между ними того же цвета, что и bg-primary. Пока мне тоже не повезло. Я использую красный цвет для стилизации нижней и верхней границ, но они не отображаются на странице:

<thead>
        <tr class = "bg-primary" style = "border-bottom-color: #9d063b">
            <th colspan = "5">
                <input id = "searchBox" class = "form-control" placeholder = "Search by name">
            </th>
        </tr>
        <tr class = "bg-primary text-white" style = "border-bottom-color: #9d063b">
            <th scope = "col">Name</th>
            <th scope = "col">Street Address</th>
            <th scope = "col">City</th>
            <th scope = "col">State</th>
            <th scope = "col">Phone</th>
        </tr>
    </thead>

И я не нашел никакой информации ни о слиянии этих двух, ни о том, что одно перекрывает другое.

попробуйте создать скрипку, затем поместите ссылку здесь, чтобы мы могли увидеть вашу проблему

vnt 26.10.2018 22:01

Попробуйте использовать эти атрибуты в таблице: <table cellspacing = "0" cellpadding = "0" border = "0"> Или в css поместите это в таблицу: border-spacing: 0; граница-коллапс: коллапс;

Julesezaar 26.10.2018 23:47
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
1 006
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, даже если вы поместите стиль border-bottom-color в строки, он не будет отображаться на странице, потому что bootstrap помещает верхнюю и нижнюю границы на <th> и <td> вместо <tr>.

Если вы переместите нижний цвет границы на <th>s:

<tr class = "bg-primary">
    <th colspan = "5"  style = "border-bottom-color: #9d063b;">
        <input id = "searchBox" class = "form-control" placeholder = "Search by name">
    </th>
</tr>

Вы увидите красные нижние границы:

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

1. Используйте CSS.

Есть много способов получить то, что вы хотите, но самый простой способ - просто избавиться от верхней и нижней границ с помощью CSS.

CSS

.table thead td,
.table thead th {
    border-top: none;
    border-bottom: none;
}

Результат

рабочий пример:http://jsfiddle.net/aq9Laaew/258054/

2. Служебный класс Bootstrap border

Вы также можете использовать служебный класс начальной загрузки для удаления границ: https://getbootstrap.com/docs/4.1/utilities/borders/

HTML

<table class = "table">
    <thead>
        <tr class = "bg-primary">
            <th colspan = "5" class = "border-bottom-0">
                <input id = "searchBox" class = "form-control" placeholder = "Search by name">
            </th>
        </tr>
        <tr class = "bg-primary text-white">
            <th scope = "col" class = "border-top-0">Name</th>
            <th scope = "col" class = "border-top-0">Street Address</th>
            <th scope = "col" class = "border-top-0">City</th>
            <th scope = "col" class = "border-top-0">State</th>
            <th scope = "col" class = "border-top-0">Phone</th>
        </tr>
    </thead>
</table>

рабочий пример:http://jsfiddle.net/aq9Laaew/258060/

Другие вопросы по теме