IE9 biên giới bán kính và chảy máu nền


191

IE9 rõ ràng có thể xử lý các góc tròn bằng cách sử dụng định nghĩa chuẩn CSS3 của border-radius.

Điều gì về hỗ trợ cho bán kính đường viền độ dốc nền? Có IE9 là để hỗ trợ cả hai riêng biệt, nhưng nếu bạn trộn cả hai thì độ dốc chảy ra từ góc tròn.

Tôi cũng đang thấy sự kỳ lạ với những cái bóng hiển thị dưới dạng một đường đen liền dưới một cái hộp có các góc tròn.

Dưới đây là những hình ảnh được hiển thị trong IE9:

hình ảnh không bị chảy máu, nhưng góc nhọn hình ảnh bị chảy máu

Làm thế nào tôi có thể làm việc xung quanh vấn đề này?


Cảm ơn những lời khuyên @MikeP và @meanstreakuk. Tôi đoán câu trả lời mà tôi đang tìm kiếm sẽ phù hợp hơn khi IE thực sự hỗ trợ độ dốc / làm tròn hoặc làm thế nào để hai chúng hoạt động cùng nhau.
SigmaBetaTooth

Bạn có câu trả lời từ @meanstreak về cách làm cho 2 người làm việc cùng nhau. Nếu bạn muốn thực tế, độ dốc SVG làm hình nền có khả năng được hỗ trợ đầy đủ bởi tất cả các trình duyệt sớm hơn nhiều so với độ dốc css (vẫn đang được phát triển / thảo luận nặng).
Kevin Peno 17/03/2016

29
MS không thể tin được là rất xa phía sau. Đó là năm 2011 và IE vẫn đang xử lý loại vấn đề này. zzzzzzz. .. trên trang web của họ, họ nói: "nhanh bây giờ là đẹp". Chắc chắn đó là. Hãy nhìn vào những hình ảnh được đăng ở trên. CÁI GÌ ĐÚNG CÁCH!
SunnyRed

SunnyRed, tốt, trong các yếu tố Chrome có trong một cái gì đó với các góc tròn chảy máu trên các góc. Thực sự, đó là năm 2012 và các trình duyệt vẫn đang xử lý loại vấn đề này :-)
Joey

2
@SunnyRed Nó 2013 bây giờ và lỗi vẫn còn đó :(
Sliq

Câu trả lời:


49

Đây là một giải pháp bổ sung độ dốc nền, sử dụng URI dữ liệu để tạo hình ảnh bán trong suốt, phủ lên bất kỳ màu nền nào. Tôi đã xác minh rằng nó được cắt chính xác đến bán kính đường viền trong IE9. Đây là trọng lượng nhẹ hơn so với các đề xuất dựa trên SVG nhưng như một nhược điểm, không độc lập với độ phân giải. Một ưu điểm khác: hoạt động với HTML / CSS hiện tại của bạn và không yêu cầu gói với các yếu tố bổ sung.

Tôi đã lấy một PNG 20x20 gradient ngẫu nhiên thông qua tìm kiếm trên web và chuyển đổi nó thành URI dữ liệu bằng một công cụ trực tuyến. URI dữ liệu kết quả nhỏ hơn mã CSS cho tất cả các SVG lộn xộn, ít hơn nhiều so với chính SVG! (Bạn chỉ có thể áp dụng điều kiện này cho IE9 bằng cách sử dụng các kiểu có điều kiện, các lớp css dành riêng cho trình duyệt, v.v.)

HTML:

<span class="button">This is a button</span>

CSS:

span.button { 
  padding: 5px 10px;
  border-radius: 10px;
  background-color: orange;  
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAvUlEQVQ4y63VMQrDMAyF4d/BGJ+rhA4dOnTo0Kn3P4ExxnSoXVQhpx0kEMmSjyfiKAF4AhVoqrvqjXdtoqPoBMQAPAZwhMpaYkAKwH1gFtgG0v9IlyZ4E2BVabtKeZhuglegKKyqsWXFVboJXgZQfqSUCZOFATkAZwEVY/ymQAtKQJ4Jd4VZqARnuqyxmXAfiAQtFJEuG9dPwtMC0zD6YXH/ldAddB/Z/aW4Hxv3g+3+6bkvB/f15b5gXX8BL0z+tEEtuNA8AAAAAElFTkSuQmCC);
  background-size: 100% 100%;

  border: 2px solid white;
  color: white;
}

1
Và người chiến thắng là ... tôi đoán nếu tôi phải chọn một thứ thì đây là nó. Tôi đã hy vọng sẽ thấy nhiều thông tin hơn khi IE thực sự hỗ trợ những gì nó nói. Đối với giải pháp hình ảnh nền, tôi là một phần của việc không kéo hình ảnh để làm cho IE hoạt động. Cảm ơn tất cả mọi người cho những gợi ý hữu ích của họ.
SigmaBetaTooth

1
Tôi thấy rằng thiết lập background-size: 100% 103%; background-position:center;là tốt hơn. 100% cho cả hai giá trị thêm một số đường viền lạ ở trên cùng và dưới cùng.
Morten Christiansen

Thêm kích thước nền: 100% 103%; vị trí nền: trung tâm; không làm gì cho tôi
Gregory Bolkenstijn

2
Không hoàn toàn chắc chắn lý do tại sao bạn đang sử dụng dữ liệu uri và không chỉ là một hình ảnh? Tôi đoán một hình ảnh có nghĩa là một cuộc gọi thêm đến máy chủ cho người dùng eg9, nhưng để tất cả những ký tự phụ đó được gửi đến các trình duyệt không phải là9 có vẻ lãng phí. Giải pháp đang làm việc cho tôi như một hình ảnh, sẽ thích lời giải thích.
Decoy

4
URI dữ liệu thủ công của anh ấy là những gì một số bộ xử lý CSS thường làm trong thời gian triển khai. Đối với "nhưng loại hack xấu xí đó là gì", đó là một điều nhảm nhí. SVG là hình ảnh như bất kỳ khác, mặc dù là một vector. Vì vậy, gọi SVG là hack và đề xuất PNG thay vào đó là hoàn toàn vô nghĩa. Tại sao SVG tốt hơn? Độ phân giải độc lập, cùng lý do bạn sử dụng bán kính đường viền thay vì nền hình ảnh rasterized.
skrat

104

Tôi cũng đã làm việc với vấn đề này. Một "giải pháp" khác là thêm một div xung quanh vật phẩm có độ dốc và góc tròn. Làm cho div đó có cùng giá trị chiều cao, chiều rộng và góc tròn. Đặt tràn thành ẩn. Đây cơ bản chỉ là một mặt nạ, nhưng nó hoạt động với tôi.

HTML:

<div class="mask roundedCorners">
    <div class="roundedCorners gradient">
        Content
    </div>
</div>

CSS:

.mask
{
    overflow: hidden;
}

.roundedCorners
{
    border-radius: 5px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
}

.gradient
{
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0065a4', endColorstr='#a0cf67',GradientType=0 ); /* IE6-9 */
}

3
Điều này hoạt động hoàn hảo đối với tôi và đơn giản hơn nhiều so với các giải pháp đề xuất khác.
Simon P Stevens

Dễ dàng hơn nhiều so với câu trả lời hiện đang được chấp nhận. Điều này hoạt động trong IE9 cho tôi.
Andy McClADE

Điều này làm việc ... rất buồn và thảm hại. Đây là trình duyệt 'HTML5'!? Tại sao tôi không hào hứng với IE10.
Todd Vance

@toddv Đừng lo lắng. Tất cả sẽ kết thúc sớm thôi. Không đủ sớm, nhưng sớm thôi. Xem daredfireball.net/linked/2012/07/04/windows-hegemony Với bất kỳ may mắn nào, sẽ không ai phải lo lắng về việc hỗ trợ IE12 ... có thể IE14 - nó trở nên mờ nhạt.
jinglểula

2
Chỉ cần một lưu ý nhỏ, nhưng các báo cáo bán kính đường viền của bạn nên được đảo ngược để thúc đẩy khả năng tương thích về phía trước. Tôi đã thực hiện chỉnh sửa.
Parris

44

Tôi nghĩ rằng điều đáng nói là trong nhiều trường hợp, bạn có thể sử dụng bóng hộp trong để "giả" hiệu ứng chuyển màu và tránh các cạnh xấu trong IE9. Điều này đặc biệt tốt với các nút.

Xem ví dụ này: http://jsfiddle.net/jancbeck/CJPPW/31/

So sánh kiểu nút với độ dốc tuyến tính hoặc bóng hộp


2
Khắc phục tuyệt vời trong trường hợp của tôi vì tôi chỉ sử dụng nút này trên một nút và cần một độ dốc giống như bạn đã vẽ. Tôi đã sử dụng các nhận xét có điều kiện cho gte IE9 ngay bây giờ và sau đó áp dụngbox-shadow: inset 0 -8px 10px rgba(0,0,0,0.15), 0 1px 0 rgba(255,255,255, 0.3), inset 0 1px 0 rgba(255,255,255, 0.3);
Volomike

thanh lịch và đơn giản. tôi ++.
Eliran Malka

1
+1 để suy nghĩ bên ngoài hộp. Hoạt động cực kỳ tốt cho các tab cũng như các nút. Sử dụng hình nhỏ giữ độ dốc bên trong phần tử.
GlennG

Đây là giải pháp tốt nhất tôi từng thấy. Css thuần túy, không yêu cầu thêm yếu tố hoặc hình ảnh.
Zaqx

1
mẹo hay nhưng tôi có độ dốc trên tất cả các trang web. tôi không thể thay đổi tất cả chúng cho ngu ngốc tức là.
Mehmet Fatih Yıldız

8

Bạn cũng có thể sử dụng CSS3 PIE để giải quyết vấn đề này:

http://css3pie.com/

Tất nhiên, điều đó có thể là quá mức nếu bạn chỉ phụ thuộc vào một yếu tố duy nhất với các góc tròn và độ dốc nền, nhưng đó là một tùy chọn để xem xét nếu bạn kết hợp một số tính năng CSS3 phổ biến trên các trang của mình và muốn hỗ trợ dễ dàng cho IE6 +


1
ngay cả với css3pie và eg9, tôi không thấy gradient. Tôi thấy các góc tròn và bóng đổ, nhưng không có độ dốc.
Kevin

7

Tôi cũng gặp phải lỗi này. Đề xuất của tôi sẽ là sử dụng một hình ảnh nền lặp đi lặp lại cho gradient trong eg9. IE9 xếp chính xác hình ảnh phía sau viền tròn (kể từ RC1).

Tôi không thấy cách viết 100 dòng mã để thay thế 1 dòng CSS là đơn giản hay thanh lịch. SVG là tuyệt vời và tất cả, nhưng tại sao phải trải qua tất cả những điều đó khi các giải pháp dễ dàng hơn cho nền gradient đã xuất hiện trong nhiều năm.


5

Tôi cũng bị mắc kẹt trong cùng một vấn đề n thấy rằng IE không thể hiển thị bán kính đường viền và độ dốc cả hai lần, cả hai xung đột, cách duy nhất để giải quyết vấn đề đau đầu này là loại bỏ bộ lọc và sử dụng gradient thông qua mã svg, chỉ dành cho IE ..

bạn có thể lấy mã svg bằng cách sử dụng mã màu gradient của họ, từ trang web này của Microsoft (được tạo đặc biệt cho gradient sang svg):

http://ie.microsoft.com/testdrive/graphics/svggradientbackgroundmaker/default.html

thưởng thức :)


Liên kết không còn hợp lệ.
nghiền nát

5

Chỉ cần sử dụng div trình bao bọc (được làm tròn & ẩn tràn) để cắt bán kính cho IE9. Đơn giản, hoạt động đa trình duyệt. SVG, JS và bình luận có điều kiện là không cần thiết.

<div class="ie9roundedgradient"><div class="roundedgradient">text or whatever</div></div>

.ie9roundedgradient { 
display:inline-block; overflow:hidden; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; 
}
.roundedgradient { 
-webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; 
/* use colorzilla to generate your cross-browser gradients */ 
}

4

Bài đăng blog này đã giúp tôi: http://abouthalf.com/2010/10/25/iNET-explorer-9-gradrons-with-rounded-corners/

Về cơ bản, bạn sử dụng một nhận xét có điều kiện để loại bỏ bộ lọc và sau đó tạo các "độ dốc" của SVG mà bạn có thể sử dụng làm hình nền.

Đơn giản và thanh lịch!


Tôi sống cái này Đặc biệt là những nỗ lực lớn đã giúp tôi HOÀN TOÀN kết thúc việc tìm kiếm của tôi về cách tạo các họa tiết bằng cách sử dụng SVG. Vì SVG có khả năng mở rộng và các sprite có thể thực hiện được, tôi thấy các gói sprite của SVG linh hoạt hơn nhiều so với độ dốc css và, như tôi đã nói ở trên, có thể sẽ thấy hỗ trợ 100% trong các trình duyệt trước độ dốc CSS.
Kevin Peno 17/03/2016

Ồ, điều duy nhất tôi muốn thêm vào đây là webkit hiện tại và, tôi tin rằng, opera cũng hỗ trợ SVG trong các url()cuộc gọi hình ảnh CSS . Do đó, chỉ có một bên trái, bỏ 1000 điều kiện và phục vụ SVG cho bg trên tất cả những gì hỗ trợ nó. Đối với những người khác, phục vụ một hình ảnh raster. Sau đó, hack này trở nên có thể quản lý.
Kevin Peno 17/03/2016

4

IE9 xử lý bán kính đường viền và độ dốc với nhau đúng cách. Vấn đề là IE9 kết xuất bộ lọc phù hợp với độ dốc. Cách để giải quyết vấn đề này là vô hiệu hóa các bộ lọc trên các khai báo kiểu sử dụng thuộc tính bộ lọc.

Như một ví dụ về cách giải quyết tốt nhất điều này:

Bạn có một lớp nút trong biểu định kiểu chính của bạn.

.btn {
    background: linear-gradient(to bottom,  #1e5799 0%,#7db9e8 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
}

Trong biểu định kiểu IE9 có điều kiện:

.btn { filter: none; }

Miễn là biểu định kiểu IE9 được tham chiếu trong đầu của bạn sau khi biểu định kiểu chính của bạn, nó sẽ hoạt động hoàn hảo.


2
eg9 không hiển thị độ dốc tuyến tính
James Westgate

3

Có một cách đơn giản để làm cho nó hoạt động theo IE9 chỉ với MỘT phần tử.

Hãy xem fiddle này: http://jsfiddle.net/bhaBJ/6/

Phần tử đầu tiên thiết lập Border-Radius. Phần tử giả thứ hai thiết lập Gradient nền.

Vài hướng dẫn chính:

  • cha mẹ phải có vị trí tương đối hoặc tuyệt đối
  • cha mẹ phải có tràn: ẩn ; (để có thể nhìn thấy hiệu ứng bán kính đường viền)
  • :: phần tử giả trước (hoặc :: sau) phải có chỉ số z: -1 (loại giải pháp thay thế)

Khai báo phần tử cơ sở đi một cái gì đó như:

.button{
    position: relative;
    overflow: hidden;        /*make childs not to overflow the parent*/

    border-radius: 5px;      /*don't forget to make it cross-browser*/

    z-index:2;               /*just to be sure*/
}

Khai báo phần tử giả:

.button:before{

    content: " ";                     /*make it a node*/
    display: block;     

    position: absolute;               
    top:0;left:0;bottom:0;right:0;    /*same width and height as parent*/

    z-index: -1;                      /*force it to NOT overlay the TEXT node*/

    /*GRADIENT declarations...*/
    background: -ms-linear-gradient(top,  #ff3232 0%,#7db9e8 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff3232',endColorstr='#7db9e8',GradientType=0 );

}

Hoàn hảo! Cảm ơn! :)
majimekun

Tôi đặt bán kính đường viền thành 20 trong ví dụ của bạn và các đường viền không bị cắt bớt trong IE9
đè bẹp

Hãy thử đặt mục này trong tiêu đề của bạn: <meta http-Equiv = "X-UA-Tương thích" nội dung = "IE = 9" />
Marakoss

2

Tôi đã quyết định vô hiệu hóa IE9 từ các góc làm tròn để khắc phục lỗi này. Nó sạch sẽ, dễ dàng và chung chung có thể sử dụng.

{
border-radius:10px;
border-radius:0px \0/;
background:linear-gradient(top , #ffeecc, #ff8800);
/* ... (-moz -ms,-o, -webkit) gradients */    
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#ffeecc,endColorstr=#ff8800);
}

1

Div mặt nạ trong IE9 là một ý tưởng tốt. Tôi đang cung cấp một số mã hoàn chỉnh để giúp làm rõ một chút. Mặc dù tôi không hài lòng với việc bọc nút trong DIV, tôi nghĩ rằng điều đó dễ hiểu hơn là nhúng mặt nạ PNG hoặc trải qua tất cả nỗ lực sử dụng SVG. Có lẽ IE 10 sẽ hỗ trợ nó đúng cách.

<!DOCTYPE html>
<html>
<head>
<title>Button Test</title>
<style>
.btn_mask { cursor:pointer;padding:5px 10px;border-radius:11px 11px 11px 11px;
 background-color:transparent;-moz-border-radius:11px 11px 11px 11px;
 -webkit-border-radius:11px 11px 11px 11px;overflow:hidden;padding:0px;
 float:left; }
.btn { cursor:pointer;text-decoration:none;border:1px solid rgb(153,153,153);
 padding:5px 10px;color:rgb(0,0,0);font-size:14px;font-family:arial,serif;
 text-shadow:0px 0px 5px rgb(255,255,255);font-size:14px;
 border-radius:11px 11px 11px 11px;-moz-border-radius:11px 11px 11px 11px;
 -webkit-border-radius:11px 11px 11px 11px;box-shadow:0px 0px 0px rgb(0,0,0);
 -moz-box-shadow:0px 0px 0px rgb(0,0,0);
 -webkit-box-shadow:0px 0px 0px rgb(0,0,0);background-color:rgb(255,204,0);
 background-image:linear-gradient(-90deg,rgb(255,255,153),rgb(255,204,0));
 background-image:-webkit-gradient(linear,50% 0%,50% 100%,from(rgb(255,255,153)),to(rgb(255,204,0)));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#ffcc00)')";background-image:-moz-linear-gradient(-90deg,rgb(255,255,153),rgb(255,204,0));
}
.btn:hover { cursor:pointer;text-decoration:none; border:1px solid rgb(153,153,153); padding:5px 10px 5px 10px; color:rgb(0,0,0); font-size:14px; font-family:arial,serif; text-shadow:0px 0px 5px rgb(255,255,255); font-size:14px; border-radius:11px 11px 11px 11px; -moz-border-radius:11px 11px 11px 11px; -webkit-border-radius:11px 11px 11px 11px; box-shadow:0px 0px 0px rgb(0,0,0); -moz-box-shadow:0px 0px 0px rgb(0,0,0); -webkit-box-shadow:0px 0px 0px rgb(0,0,0); background-color:rgb(255,255,0); background-image:linear-gradient(-90deg,rgb(255,255,0),rgb(255,255,153)); background-image:-webkit-gradient(linear,50% 0%,50% 100%,from(rgb(255,255,0)),to(rgb(255,255,153))); background-image:-moz-linear-gradient(-90deg,rgb(255,255,0),rgb(255,255,153)); }
</style>
</head>
<body>
<form name='form1'>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
</form>
</body>
</html>

1
background: #4f81bd; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRmODFiZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM4YWJiZDciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(left, #4f81bd 0%, #8abbd7 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#4f81bd), color-stop(100%,#8abbd7)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* IE10+ */
background: linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4f81bd', endColorstr='#8abbd7',GradientType=1 ); /* IE6-8 */

Đã làm điều này với tôi và một khi tôi gỡ bỏ "bộ lọc:" dòng chảy máu đã biến mất. Thêm vào đó tôi sử dụng PIE.

Chảy máu:

    background: #8abbd7; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzhhYmJkNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM0ZjgxYmQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #8abbd7 0%, #4f81bd 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8abbd7), color-stop(100%,#4f81bd)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* IE10+ */
background: linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8abbd7', endColorstr='#4f81bd',GradientType=0 ); /* IE6-8 */
-pie-background: linear-gradient(#8ABBD7, #4f81bd);
behavior: url(../PIE/PIE.htc);

Không chảy máu:

    background: #8abbd7; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzhhYmJkNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM0ZjgxYmQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #8abbd7 0%, #4f81bd 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8abbd7), color-stop(100%,#4f81bd)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* IE10+ */
background: linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* W3C */
-pie-background: linear-gradient(#8ABBD7, #4f81bd);
behavior: url(../PIE/PIE.htc);

Sửa lỗi IE nhanh:

fixBoxShadowBlur($('*'));

function fixBoxShadowBlur(jQueryObject){
if($.browser.msie && $.browser.version.substr(0, 1) == '9'){
    jQueryObject.each(function(){
        boxShadow = $(this).css('boxShadow');
        if(boxShadow != 'none'){
            var bsArr = boxShadow.split(' ');
            bsBlur = parseInt(bsArr[2]) || 0;
            bsBlurMeasureType = bsArr[2].substr(("" + bsBlur).length);
            bsArr[2] = (bsBlur * 2) + bsBlurMeasureType;
            $(this).css('boxShadow', bsArr.join(' '));
        }
    });
}

}


1

Bạn có thể sử dụng bóng để đạt được độ dốc và sẽ hoạt động trên Internet Explorer 9 vớiborder-radius

Một cái gì đó như thế này:

box-shadow: inset 0px 0px 26px 5px gainsboro;

0

Không chắc đây là một cách giải quyết hay một cách giải quyết hợp lệ nhưng ...

Tôi thấy rằng cung cấp bán kính đường viền lớn hơn chiều rộng đường viền, tôi không gặp phải vấn đề này. Khi họ giống nhau, tôi đã nhận được các góc vuông.


0

Sử dụng la bàn và sass bạn có thể dễ dàng đạt được điều này như vậy:

@import "compass";
#border-radius {
@include border-radius('RADIUS'px); }
#gradiant{
$experimental-support-for-svg: true;
@include background-image(linear-gradient('COLOR') %,('COLOR') %,...; }

La bàn sẽ tạo ra một hình ảnh SVG cho bạn.

như vậy

#gradiant {
 background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9InRvIiB5MT0iYm90dG9tIiB4Mj0idG8iIHkyPSJ0b3AiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiMwODJhMmUiLz48c3RvcCBvZmZzZXQ9IjM1JSIgc3RvcC1jb2xvcj0icmdiYSg4LCA0MiwgNDYsIDAuNzYpIi8+PHN0b3Agb2Zmc2V0PSI0MyUiIHN0b3AtY29sb3I9InJnYmEoNywgNDMsIDQ3LCAwLjcxKSIvPjxzdG9wIG9mZnNldD0iNTglIiBzdG9wLWNvbG9yPSJyZ2JhKDQsIDQ0LCA1MCwgMC41OCkiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwNDJjMzIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
background-size: 100%;
background-image: -webkit-gradient(linear, to bottom, to top, color-stop(0%, #082a2e),   color-stop(35%, rgba(8, 42, 46, 0.76)), color-stop(43%, rgba(7, 43, 47, 0.71)), color-stop(58%, rgba(4, 44, 50, 0.58)), color-stop(100%, #042c32));
background-image: -webkit-linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);
background-image: -moz-linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);
background-image: -o-linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);
background-image: linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);

}

/* line 28, ../sass/boxshadow.scss */
#border-radius {
 -moz-border-radius-topright: 8px;
  -webkit-border-top-right-radius: 8px;
   border-top-right-radius: 8px;
 -moz-border-radius-bottomright: 8px;
  -webkit-border-bottom-right-radius: 8px;
  border-bottom-right-radius: 8px;

}


0

Làm việc cho tôi ...

<!--[if gte IE 9]>
  <style type="text/css">
  .gradient{
   filter: ;
}
</style>

css

border-radius: 10px;
background: #00a8db; /* Old browsers */
background: -moz-linear-gradient(top, #00a8db 0%, #116c8c 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00a8db), color-    stop(100%,#116c8c)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #00a8db 0%,#116c8c 100%); /* Chrome10+,Safari5.1+     */
background: -o-linear-gradient(top, #00a8db 0%,#116c8c 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #00a8db 0%,#116c8c 100%); /* IE10+ */
background: linear-gradient(to bottom, #00a8db 0%,#116c8c 100%); /* W3C */
-webkit-box-shadow: 1px 5px 2px #999;
-moz-box-shadow: 1px 1px 5px #999;
box-shadow: 1px 1px 5px #999;
color: #fff;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00a8db',     endColorstr='#116c8c',GradientType=0 ); /* IE6-8 */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background:     url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYThkYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxMTZjOGMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
/* W3C Markup, IE10 Release Preview */ 
background-image: linear-gradient(to top, #116C8C 0%, #00A5D7 100%);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.