К сожалению, нет «предыдущего» селектора, но вы можете , возможно, получить тот же эффект, используя позиционирование (например, float right). Это зависит от того, что вы пытаетесь сделать.
В моем случае я хотел получить первую 5-звездочную рейтинговую систему CSS. Мне нужно было бы покрасить (или поменять значок) предыдущих звезд. Если плавать каждый элемент вправо, я по сути получаю тот же эффект (html для звезд, таким образом, должен быть записан «назад»).
Я использую FontAwesome в этом примере и заменяю между юникодами fa -star-o и fa-star http://fortawesome.github.io/Font-Awesome/
CSS:
.fa {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* set all stars to 'empty star' */
.stars-container {
display: inline-block;
}
/* set all stars to 'empty star' */
.stars-container .star {
float: right;
display: inline-block;
padding: 2px;
color: orange;
cursor: pointer;
}
.stars-container .star:before {
content: "\f006"; /* fontAwesome empty star code */
}
/* set hovered star to 'filled star' */
.star:hover:before{
content: "\f005"; /* fontAwesome filled star code */
}
/* set all stars after hovered to'filled star'
** it will appear that it selects all after due to positioning */
.star:hover ~ .star:before {
content: "\f005"; /* fontAwesome filled star code */
}
HTML: (40)
В этой статье единственной причиной получения ScaleMode является установка ширины горизонтальной полосы прокрутки. Вам не обязательно это делать.
SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, 800, 0
где 800 - ширина пикселя, которую вы хотите, чтобы окно списка могло прокручиваться вправо.
Вам все равно потребуется HWND. Лучше всего использовать внешнюю DLL (написанную на VB), которая может перечислить через дочерние окна вашего процесса, пока не найдет класс Windows для списка (вам нужно будет найти способ однозначно идентифицировать его родителя, например окно название / текст или что-то еще). Эта же DLL могла бы также вызвать вызов SendMessage выше, чтобы установить горизонтальный объем текста (возможно, он также может измерять ширину содержащихся элементов списка).
Если я что-то не упустил, список VBA автоматически получит горизонтальную полосу прокрутки, если общая ее свойство ColumnWidths
превышает свою собственную ширину.
Нет свойств, которые я знаю об этом влиянии поведение, т. е. я не знаю, как заставить или отключить отображение горизонтальной полосы прокрутки.
Вы пытались использовать свойство ColumnWidths? У меня есть список с горизонтальной полосой прокрутки. Мне просто нужно добавить свойство ColumnWidths.
Например, у меня есть
m e.Listbox1.Columnwidts ="0.5 in;0.2 in;1.5 in;0.75 in;0.5 in"
Обработать его поле списка можно получить следующим образом: -
Dim ListHwnd As Integer lstboxName.SetFocus ListHwnd = GetFocus ()
Используйте этот ListHwnd в качестве первого параметра для sendmessage function ...
Нам нужно предоставить декларацию ниже, так как функция GetFocus отсутствует в VBA по умолчанию
Private Declare Function GetFocus Lib «user32» () As Integer