开发者

Property border-radius doesn't exist in CSS level 2.1 but exists in : 6px 6px

开发者 https://www.devze.com 2023-03-06 20:07 出处:网络
I am new to web design and I have some problems in my website. First, it is not a 开发者_开发知识库cross-browser compatible website. I want to make it so, but I don\'t know how to do this. I have read

I am new to web design and I have some problems in my website. First, it is not a 开发者_开发知识库cross-browser compatible website. I want to make it so, but I don't know how to do this. I have read some articles about this, but they have not been any help. Please tell me how I can design a cross-browser website.

Second, I have validated my website's CSS file and gotten these errors:

218 .box Property border-radius doesn't exist in CSS level 2.1 but exists in : 6px 6px

219 .box Property -moz-border-radius doesn't exist : 6px 6px

220 .box Property -webkit-border-radius doesn't exist : 6px 6px.

But I don't know how to solve this either.

http://www.harvestcreativemedia.com


border-radius is a CSS3 property, so if you're validating as CSS2, it will report errors.

-moz-border-radius and -webkit-border-radius are "vendor prefixed" versions of the same property. Vendor prefixes are given by the browser makers to features which they have implemented, but which either are not yet standardised or else their implementation of it is not yet complete. Either way, it allows a site designer to use the feature before it is officially ready.

If you're designing a cross-browser site, you need to consider which browsers to include. For example, do you want to take time making it work in very old versions of browsers (which perhaps no-one is using any more)? You need to decide which older versions to support.

This is relevant to border-radius because current versions of Firefox, Chrome and Safari all support border-radius without the vendor prefix. In fact, the vendor prefix hasn't been required for several versions, particularly for the Webkit browsers. So you may be perfectly justified in dropping those prefixed declarations. You need to check which versions of which browsers require them, and decide whether you want to support those browsers.

Another factor to consider is that until very recently, IE did not support border-radius at all, not even with a vendor prefix. IE9 does support it, but most IE users are still running IE8.

If you want border-radius to work for IE, you will need to do some hacks. The best option at the moment for this is CSS3Pie. Your other option is just to ignore it and leave IE users with square corners. Since this won't affect the usability of your site, you may decide this is the easiest option.

All the browsers and browser versions have their own combination of features which they support. A site like CanIUse.com is invaluable for helping you determine whether or not to use any given feature: it shows which browsers and versions support it, allowing you make an informed decision about whether to use it or not.

Finally, the most important piece of advice I can give you for making a site cross-browser: Test it in all browsers, and all browser versions that you want to support. (don't just assume that if it works in one version of a browser it'll work in other versions - you need to test them all).


To fix a website website cross browser the best way is to start it with this in mind and step by step in development to check each browser for any difference and try to find a cross browser solution. You can achieve it with a finished website also but of course it is much more difficult. If you have specific question you can use stackoverflow.com for help in any programming issue you have.

About the errors you get is because you try to validate a css 3 file with css 2.1 standards. Go at http://jigsaw.w3.org/css-validator/#validate_by_uri+with_options and select at profile level 3 css to validate for css 3.


A good thing to look into is jquery rounded corners. it's rather simple and does almost everything that css3 border-radius does. The downside is creating a border,if you want a 1px border you would have to wrap your target div in another div and set the outer to a padding of 1 px.

here is the site: http://plugins.jquery.com/project/corners download the zip package to view the demo.

This works on all browsers and IE6+, it also adapts correct css properties if they exist for that browser.

0

精彩评论

暂无评论...
验证码 换一张
取 消