ฉันใช้โฮเวอร์ , แอคทีฟและปิดการใช้งานกับปุ่มสไตล์
แต่ปัญหาคือเมื่อปุ่มถูกปิดใช้งานโฮเวอร์และสไตล์ที่ใช้งานยังคงมีผลอยู่
วิธีใช้โฮเวอร์และแอ็คทีฟบนปุ่มที่เปิดใช้งานเท่านั้น
ฉันใช้โฮเวอร์ , แอคทีฟและปิดการใช้งานกับปุ่มสไตล์
แต่ปัญหาคือเมื่อปุ่มถูกปิดใช้งานโฮเวอร์และสไตล์ที่ใช้งานยังคงมีผลอยู่
วิธีใช้โฮเวอร์และแอ็คทีฟบนปุ่มที่เปิดใช้งานเท่านั้น
คำตอบ:
คุณสามารถใช้: เปิดใช้งานคลาสหลอก แต่การแจ้งเตือนIE<9
ไม่รองรับ :
button:hover:enabled{
/*your styles*/
}
button:active:enabled{
/*your styles*/
}
button:hover:enabled
ดูเหมือนจะไม่ทำงานในกรณีของฉัน ใช้การจำลอง IE9 ภายใต้ IE11
.button:active:hover:not([disabled]) {
/*your styles*/
}
คุณสามารถลองสิ่งนี้ ..
ทำไมไม่ใช้แอตทริบิวต์ "disabled" ใน css ต้องใช้กับเบราว์เซอร์ทั้งหมด
button[disabled]:hover {
background: red;
}
button:hover {
background: lime;
}
.button[disabled], .button[disabled]:hover, .button[disabled]:focus, .button[disabled]:active {}
วิธีที่มีความเฉพาะเจาะจงต่ำกว่าซึ่งใช้งานได้ในเบราว์เซอร์รุ่นใหม่ (IE11 + และไม่รวมเบราว์เซอร์ Opera & IE บนมือถือ - http://caniuse.com/#feat=pointer-events ):
.btn {
/* base styles */
}
.btn[disabled]
opacity: 0.4;
cursor: default;
pointer-events: none;
}
.btn:hover {
color: red;
}
pointer-events: none
กฎจะปิดการเลื่อน; คุณไม่จำเป็นต้องเพิ่มความเฉพาะเจาะจงด้วย.btn[disabled]:hover
ตัวเลือกเพื่อลบล้างลักษณะการโฮเวอร์
(FYI นี่คือเหตุการณ์ HTML ตัวชี้แบบง่ายไม่ใช่ตัวชี้สรุปการป้อนข้อมูลอุปกรณ์ที่เป็นข้อโต้แย้ง)
ใน sass (scss):
button {
color: white;
cursor: pointer;
border-radius: 4px;
&:disabled{
opacity: 0.4;
&:hover{
opacity: 0.4; //this is what you want
}
}
&:hover{
opacity: 0.9;
}
}
หากคุณกำลังใช้LESS
หรือSass
คุณสามารถลองนี้:
.btn {
&[disabled] {
opacity: 0.6;
}
&:hover, &:active {
&:not([disabled]) {
background-color: darken($orange, 15);
}
}
}
วิธีหนึ่งคือการเพิ่มคลาสของอนุภาคในขณะที่ปิดใช้งานปุ่มและการแทนที่โฮเวอร์และสถานะแอ็คทีฟสำหรับคลาสนั้นใน css หรือลบคลาสเมื่อปิดใช้งานและระบุคุณสมบัติการโฮเวอร์และการใช้งานหลอกในคลาสนั้นใน css เท่านั้น ไม่ว่าจะด้วยวิธีใดก็ตามอาจไม่สามารถทำได้อย่างหมดจดด้วย css คุณจะต้องใช้ js เล็กน้อย
:not()
ตัวเลือก แต่หลังจากนั้นอีกครั้งรองรับเฉพาะตั้งแต่ IE9 เช่นกัน ดู: developer.mozilla.org/en-US/docs/Web/CSS/:not