Вам необходимо назначить уникальный идентификатор, такой как class
или id
, чтобы конкретно сделать первый тег выбора readonly
, а не оба ... например, здесь я использую тег и селектор атрибута для выбора теги с атрибутом readonly
select[readonly]:-moz-read-only {
/* For Firefox */
pointer-events: none;
}
select[readonly]:read-only {
pointer-events: none;
}
<p> ACCEPTED </p>
<select readonly>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<br>
<p> UNACCEPTED : selector also applying here </p>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
Используемый вами селектор является селектором тегов и будет выбирать любой тег select
и включите его только для чтения.
Добавление некоторых деталей на основе комментариев,
Вы можете отключить фокус вкладки, используя атрибут tabindex
со значением, установленным в false
в теге select
Вот некоторый код, который я написал * для псевдонима (совместного использования памяти) между WPF BitmapSource и GDI Bitmap (для моего собственного проекта)
Очевидно, вам нужно настроить его для своего собственные нужды, скорее всего, в конце концов получится менее «хакерское» чувство.
class AliasedBitmapSource : BitmapSource {
private Bitmap source;
public AliasedBitmapSource(Bitmap source) {
this.source = source;
this.pixelHeight = source.Height;
this.pixelWidth = source.Width;
this.dpiX = source.HorizontalResolution;
this.dpiY = source.VerticalResolution;
}
public override event EventHandler DownloadCompleted;
public override event EventHandler<ExceptionEventArgs> DownloadFailed;
public override event EventHandler<ExceptionEventArgs> DecodeFailed;
protected override Freezable CreateInstanceCore() {
throw new NotImplementedException();
}
private readonly double dpiX;
public override double DpiX {
get {
return dpiX;
}
}
private readonly double dpiY;
public override double DpiY {
get {
return dpiY;
}
}
private readonly int pixelHeight;
public override int PixelHeight {
get {
return pixelHeight;
}
}
private readonly int pixelWidth;
public override int PixelWidth {
get {
return pixelWidth;
}
}
public override System.Windows.Media.PixelFormat Format {
get {
return PixelFormats.Bgra32;
}
}
public override BitmapPalette Palette {
get {
return null;
}
}
public unsafe override void CopyPixels(Int32Rect sourceRect, Array pixels, int stride, int offset) {
BitmapData sourceData = source.LockBits(
sourceRect.ToRectangle(),
ImageLockMode.ReadWrite,
System.Drawing.Imaging.PixelFormat.Format32bppArgb);
fixed (byte* _ptr = &((byte[])pixels)[0]) {
byte* dstptr = _ptr;
byte* srcptr = (byte*)sourceData.Scan0;
for (int i = 0; i < pixels.Length; ++i) {
*dstptr = *srcptr;
++dstptr;
++srcptr;
}
}
source.UnlockBits(sourceData);
}
}
public static class Extensions {
public static Rectangle ToRectangle(this Int32Rect me) {
return new Rectangle(
me.X,
me.Y,
me.Width,
me.Height);
}
public static Int32Rect ToInt32Rect(this Rectangle me) {
return new Int32Rect(
me.X,
me.Y,
me.Width,
me.Height);
}
}
* под «писал», я имею в виду «бросили вместе за 10 минут»
Если вы используете последние биты WPF, посмотрите WriteableBitmap , вам придется проделайте большую часть работы, но у вас будут действительно быстрые обновления.
Сделайте быстрый гугл, и вы получите несколько образцов.