Чтобы получить элементы <abbr>
в верхнем правом углу, вы должны использовать position: absolute; top: 0; right: 0
, но для этого потребуется position: relative
для <td>
;проблема в том, что не все браузеры разрешают position: relative
в ячейке таблицы, поэтому вам нужно обернуть содержимое ячейки таблицы в <div>
:
<td>
<div class="td-hack">
<abbr>11</abbr>
<div>
</td>
И затем это (с границами и цветами фона)только в иллюстративных целях) поместит все в нужное место:
td {
width: 50px;
height: 50px;
background: #eee;
border: 1px solid red;
}
.td-hack {
width: 100%;
height: 100%;
position: relative;
}
abbr {
position: absolute;
top: 0;
right: 0;
padding: 2px;
}
Для оверлея будет работать тот же вид position: absolute
:
<div class="overlay">
<div class="o-left"></div>
<div class="o-right"></div>
</div>
И стиль с чем-тонапример:
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #dfd;
}
.o-left,
.o-right {
width: 50%;
height: 100%;
display: inline-block;
}
.o-left {
background: #dff;
}
.o-right {
background: #ffd;
}
Затем вам просто нужно добавить наложение к .td-hack
, когда начинается наведение, и удалить его, когда наведение завершится;в этом примере используется jQuery, чтобы избежать шума исходного решения JavaScript:
var overlay = '<div class="overlay">'
+ '<div class="o-left"></div>'
+ '<div class="o-right"></div>'
+ '</div>';
$('td').hover(
function() {
$(this).find('.td-hack').append(overlay);
},
function() {
$(this).find('.overlay').remove();
}
);
Демонстрационная демонстрация техники: http://jsfiddle.net/ambiguous/ah5s3/1/