В зависимости от деталей вашей ситуации, вы можете быть в состоянии уйти с CSS3-х border-image-* rules , Например, я эффективно использовал их для размещения «фиктивных кнопок поиска» в строке фильтра виджета CGridView в yii (щелчок в любом месте за пределами полей ввода фильтра инициирует вызов ajax, но эти «кнопки» дают пользователю что-то интуитивно понятное).
Мне не стоило подклассифицировать виджет CGridColumn, чтобы взломать html в методе renderFilterCell()
* - Я хотел получить чистое решение CSS.
.myclass .grid-view .items {
border-collapse: separate ;
}
.myclass .grid-view .filters td + td {
border-image-source: url("/path/to/my/img_32x32.png");
border-image-slice: 0 0 0 100%;
border-image-width: 0 0 0 32;
border-image-outset: 0 0 0 40px;
border-width: 1px;
}
.myclass .grid-view .filters input {
width: 80%;
}
Существует немного трюка, участвующий в значениях границы изображения ширины - 32, что является мультипликатором не длиной (не ставить точки) блока, используемый в приграничной ширине (т.е. 1px). Результатом являются поддельные кнопки в первых n-1 столбцах gridview. В моем случае мне не понадобилось ничего в последнем столбце, потому что это CButtonsColumn, у которого нет фильтра. Во всяком случае, я надеюсь, что это поможет людям, ищущим чистое решение CSS & # x1F600; :-D
* Вскоре после этого я обнаружил, что могу просто конкатенировать код для изображения в свойстве «фильтр» массива, используемого для построения CGridColumn, поэтому мое обоснование оказывается спорным. Плюс, похоже, проблема (в Firefox, во всяком случае), при которой повторение границы-изображения вынуждено растягиваться, даже когда задано пространство.Тем не менее, может быть, это может пригодиться кому-то & # x1F615; : - \
это отстой !! ну, похоже, что jQuery придется снова спасти меня :) – fearofawhackplanet
В любом случае, приложение «background-attachment» довольно странно, и может возникнуть больше проблем с его использованием, чем с помощью сопутствующего элемента. Я сомневаюсь, что вы могли бы сделать «привязку к фону» исключительно чисто из CSS, потому что, когда вы используете его, значения позиционирования ссылаются на окно и не имеют ничего общего с элементом. Таким образом, вам нужно будет вычислить, какими должны быть эти координаты, и это кажется большой болью. – Pointy