Показать сообщение отдельно
  #3 (permalink)  
Старый 10.12.2014, 00:46
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от leshiple
P.S. Если не правильно или неудобно оформил тему то скажите как исправить.
добавь все атрибуты [ html run height=500 hide]


мой вариант на сон грядущий, код жутковат, но вроде бы работает
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head lang="ru">
    <meta charset="UTF-8">
    <title>First</title>
    <link rel="stylesheet" href="style.css"/>
    <style>
        table {
            border-collapse: collapse;
            font-family: "Arial", sans-serif;
            font-size: 0.9em;
            margin: 50px;
            position: relative;
        }

        td {
            border: 1px solid black;
            width: 150px;
            padding: 5px;
        }

        thead {
            background-color: coral;
            font-weight: bold;
        }


        .select-group {
            font-weight: normal;
            font-style: italic;
            display: none;
            position: absolute;
            background-color: burlywood;
            width: 150px;
            padding: 5px;
            border: 1px solid black;
            top: 33px;
        }

        td:hover > .select-group {
            display: block;
        }

        thead:hover {
            cursor: pointer;
        }

        .second-name {
            left: 0;
        }

        .first-name {
            left: 161px;
        }

        .otch {
            left: 322px;
        }

        .select-item {
            padding: 5px 0;
            border-bottom: 1px solid black;
        }

        .select-item:hover {
            background-color: darkkhaki;
        }

        span {
            background-color: #fff;
            padding: 3px;
            width: 144px;
            display: block;
        }

        label {
            display: block;
        }

    </style>
    <script type="text/javascript">
document.addEventListener("DOMContentLoaded", function () {

	function closest (elem, selector) {
		while (elem && elem.tagName != selector) {
			elem = elem.parentNode;
		}
		return elem;
	}
	
	Array.prototype.map.call(document.querySelector("table").querySelectorAll("input[type=checkbox"), function (inp) {
		inp.checked = true;
	});
	
	document.querySelector("table").addEventListener("click", function (event) {
		var target = event.target; 
		if ( target.type && target.type == "checkbox" ) {
			var td = closest(target, "TD");
			var index = td.cellIndex;
			var inps = td.querySelectorAll("input:checked");
			var vals = Array.prototype.map.call(inps, function (inp) {
				return inp.value;
			});
			var trs = this.querySelector("tbody").querySelectorAll("tr");
			Array.prototype.map.call(trs, function (tr ) {
				if ( !tr.isHiddenByCol ) tr.isHiddenByCol = [];
				if ( vals.indexOf(tr.cells[index].innerHTML) == -1 ) {
					tr.style.display = "none";
					if ( tr.isHiddenByCol.indexOf(index) == -1 ) 
						tr.isHiddenByCol.push(index); 
				} else if ( tr.isHiddenByCol.indexOf(index) != -1 ) {
					tr.isHiddenByCol.splice(tr.isHiddenByCol.indexOf(index), 1);
					if ( tr.isHiddenByCol.length == 0 ) {
						tr.style.display = "";
					}
				}
			});
		}
	});
});
    </script>

</head>
<body>
    <table>
        <thead>
            <tr>
                <td>
                    <span>Фамилия</span>
                    <div class="select-group second-name">
                        <label><input class="select-item col11" type="checkbox" value="Епихин">Епихин</label>
                        <label><input class="select-item col11" type="checkbox" value="Буртовой">Буртовой</label>
                    </div>
                </td>
                <td>
                     <span>Имя</span>
                    <div class="select-group first-name">
                        <label><input class="select-item col11" type="checkbox" value="Александр">Александр</label>
                        <label><input class="select-item col11" type="checkbox" value="Евгений">Евгений</label>
                        <label><input class="select-item col11" type="checkbox" value="Сергей">Сергей</label>
                    </div>
                </td>
                <td>
                     <span>Отчество</span>
                    <div class="select-group otch">
                        <label><input class="select-item col11" type="checkbox" value="Валерьевич">Валерьевич</label>
                        <label><input class="select-item col11" type="checkbox" value="Олегович">Олегович</label>
                        <label><input class="select-item col11" type="checkbox" value="Анатольевич">Анатольевич</label>
                    </div>
                </td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="col1">Епихин</td>
                <td class="col2">Александр</td>
                <td class="col3">Валерьевич</td>
            </tr>
            <tr>
                <td class="col1">Буртовой</td>
                <td class="col2">Евгений</td>
                <td class="col3">Олегович</td>
            </tr>
            <tr>
                <td class="col1">Епихин</td>
                <td class="col2">Александр</td>
                <td class="col3">Анатольевич</td>
            </tr>
            <tr>
                <td class="col1">Епихин</td>
                <td class="col2">Сергей</td>
                <td class="col3">Валерьевич</td>
            </tr>
            <tr>
                <td class="col1">Буртовой</td>
                <td class="col2">Александр</td>
                <td class="col3">Олегович</td>
            </tr>
        </tbody>
    </table>

</body>
</html>
Ответить с цитированием