2012-04-20 39 views
94

Tôi ghi đè CSS trang web lên phiên bản RTL khi ngôn ngữ cụ thể được chọn.Cách xóa Thuộc tính trái khi vị trí: tuyệt đối?

Tôi có một yếu tố phải có vị trí tuyệt đối. Trong phiên bản LTR, tôi làm left: 0px; và nó được căn chỉnh ở bên trái; trong phiên bản RTL tôi muốn làm ngược lại với right, nhưng thuộc tính left không bị ghi đè nên nó vẫn ở bên trái.

  • Tôi đã thử hack bằng !important, nhưng điều đó không hiệu quả.
  • Tôi đã thử đặt left: none nhưng điều đó không hiệu quả.

Làm cách nào để tôi có thể đặt hoặc không xóa hoàn toàn khi ghi đè?

+0

Để loại bỏ chỉ một thuộc tính css cụ thể như 'left' use:' var cssObject = $ ('selector'). Prop ('style'); cssObject.removeProperty ('left'); ' – ilgaar

Trả lời

260
left:auto; 

Điều này sẽ mặc định left trở về mặc định của trình duyệt.


Vì vậy, nếu bạn có bạn Markup/CSS như:

<div class="myClass"></div> 

.myClass 
{ 
    position:absolute; 
    left:0; 
} 

Khi cài đặt RTL, bạn có thể thay đổi để:

<div class="myClass rtl"></div> 

.myClass 
{ 
    position:absolute; 
    left:0; 
} 
.myClass.rtl 
{ 
    left:auto; 
    right:0; 
} 
13

Trong tương lai người ta sẽ sử dụng left: unset; cho unset các giá trị của trái.

Tính đến hôm nay 4 tháng 11 năm 2014 unset chỉ được hỗ trợ trong Firefox.

Read more about unset in MDN.

tôi đoán là chúng ta sẽ có thể sử dụng nó quanh năm 2022 khi IE 11 được pha đúng ra.

+12

+1 cho giai đoạn IE 11 lạc quan. –

+0

IE đặt "IE" vào "I'llnever dIE". –

+0

Vào cuối năm 2017, Microsoft Edge xây dựng 10565+ hỗ trợ nó –

1
left: initial 

Điều này cũng sẽ đặt lại left trở về mặc định của trình duyệt.

Nhưng điều quan trọng cần biết là property: initial không được hỗ trợ trong IE.

Các vấn đề liên quan