css是c#吗
发布时间:2025-05-23 22:47:09 发布人:远客网络
一、css是c#吗
css不是c#。CSS和C#是两种不同的编程语言。CSS(CascadingStyleSheets)是一种用于网页样式设计的语言,用于控制网页中各个元素的外观和布局。而C#(读作CSharp)则是一种面向对象的编程语言,主要用于开发Windows应用程序、Web应用程序、游戏等。两者虽然有些类似,但是具有不同的语法结构和编写方式。
二、定义css样式的语法结构
1、
2、中文翻译为样式表!它的作用简单的说:就是可以使你在同一页面里使用不同的超链接样式。
3、更神奇的是,用CSS,仅仅改变一个文件就可以改变数百个网页的外观......个性化的表现而不损失访问者......所有这些都因为网页样式表的强大和灵活特性。
4、各种选择符、伪类、伪元素和层叠顺序的入门。
5、各种层叠样式表级别一有效的属性的描述。
6、各种将样式表加入到HTML文本中的方法。
7、怎样会是滥用样式表和使你的网页难以处理。
8、连接到介绍CSS的规范和其它方面的文章。
9、------------------------------------------------------------------------------
10、一个样式表由样式规则组成,以告诉浏览器怎样去呈现一个文档.有很多将样式规则加入到你的HTML文档中的方法,但最简单的启动方法是使用HTML的STYLE组件.这个元素放置于文档的HEAD部分,包含网页的样式规则.
11、要注意到尽管STYLE元素是试验样式表的好方法,它具有某些在用户使用这种方法之前应该考虑的缺点.不同方法的优点和缺点在将样式表加入到HTML中部分中有讨论。
12、每个规则的组成包括一个选择符--通常是一个HTML的元素,例如BODY, P,或EM--和该选择符所接受的样式.
13、有很多的属性可以用于定义一个元素.每个属性带一个值,共同地描述选择符应该如何呈现.
14、单一选择符的复合样式声明应该用分号隔开:
15、以下是一段定义了H1和H2元素的颜色和字体大小属性:
16、<TITLE>CSS例子</TITLE>
17、H1{ font-size: x-large; color: red}
18、H2{ font-size: large; color: blue}
19、上述的样式表告诉浏览器用加大、红色字体去显示一级标题,用大、蓝色字体去显示二级标题. CSS1规格正式地定义了所有的有效属性和值.属性和值在本网站的CSS属性部分也给出了.
20、本教程专门介绍了CSS非常基础的知识,以提供足够的信息去让你试验自己的样式.要获得CSS更深入的知识,阅读继续阅读以下部分:
21、任何HTML元素都可以是一个CSS1的选择符。选择符仅仅是指向特别样式的元素。例如,
22、单一个选择符能有不同的CLASS(类),因而允许同一元素有不同样式。例如,一个网页制作者也许希望视其语言而定,用不同的颜色显示代码:
23、以上的例子建立了两个类,css和html,供HTML的CODE元素使用。CLASS属性是用于在HTML中以指明元素的类,例如,
24、<P CLASS=warning>每个选择符只允许有一个类。
25、例如,code.html.proprietary是无效的。</p>
26、在这个例子,名为note的类可以被用于任何元素。
27、一个良好的习惯是在命名类的时候,根据它们的功能而不是根据它们的外观。上述例子中的note类也可以命名为small,但如果网页制作者决定改变这个类的样式,使得它不再是小字体的话,那么这个名字就变得毫无意义了。
28、ID选择符个别地定义每个元素的成分。这种选择符应该尽量少用,因为他具有一定的局限。一个ID选择符的指定要有指示符"#"在名字前面。例如,ID选择符可以指定如下:
29、<P ID=svp94O>文本缩进3em</P>
30、关联选择符只不过是一个用空格隔开的两个或更多的单一选择符组成的字符串。这些选择符可以指定一般属性,而且因为层叠顺序的规则,它们的优先权比单一的选择符大。例如,以下的上下文选择符
31、是P EM。这个值表示段落中的强调文本会是黄色背景;而标题的强调文本则不受影响。
32、一个属性被指定到选择符是为了使用它的样式。属性的例子包括颜色、边界和字体。
33、声明的值是一个属性接受的指定。例如,属性颜色能接受值red。
34、为了减少样式表的重复声明,组合的选择符声明是允许的。例如,文档中所有的标题可以通过组合给出相同的声明:
35、实际上,所有在选择符中嵌套的选择符都会继承外层选择符指定的属性值,除非另外更改。例如,一个BODY定义了的颜色值也会应用到段落的文本中。
36、有些情况是内部选择符不继承周围的选择符的值,但理论上这些都是特殊的。例如,上边界属性是不会继承的;直觉上,一个段落不会有同文档BODY一样的上边界值。
37、样式表里面的注解使用C语言编程中一样的约定方法去指定。CSS1注解的例子如以下格式:
38、/* COMMENTS CANNOT BE NESTED*/
39、伪类和伪元素是特殊的类和元素,能自动地被支持CSS的浏览器所识别。伪类区别开不同种类的元素(例如,visited links(已访问的连接)和active links(可激活连接)描述了两个定位锚(anchors)的类型)。伪元素指元素的一部分,例如段落的第一个字母。
40、伪类和伪元素不应用HTML的CLASS属性来指定。一般的类可以与伪类和伪元素一起使用,如下:
41、伪类可以指定A元素以不同的方式显示连接(links)、已访问连接(visited links)和可激活连接(active links)。定位锚元素可给出伪类link、visited或active。一个已访问连接可以定义为不同颜色的显示,甚至不同字体大小和风格。
42、一个有趣的效果是使当前(或“可激活”)连接以不同颜色、更大的字体显示。然后,当网页的已访问连接被重选时,又以不同颜色、更小字体显示。这个样式表的示例如下:
43、A:active{ color: blue; font-size: 125%}
44、A:visited{ color: green; font-size: 85%}
45、通常在报纸上的文章,例如Wall Street Journal中的,文本的首行都会以粗印体而且全部大写地展示。CSS1包括了这个功能,将其作为一个伪元素。首行伪元素可以用于任何块级元素(例如P、H1等等)。以下是一个首行伪元素的例子:
46、首个字母伪元素用于加大(drop caps)和其他效果。含有已指定值选择符的文本的首个字母会按照指定的值展示。一个首个字母伪元素可以用于任何块级元素。例如:
47、P:first-letter{ font-size: 300%; float: left}
48、当使用了多个样式表,样式表需要争夺特定选择符的控制权。在这些情况下,总会有样式表的规则能获得控制权。以下的特性将决定互相对立的样式表的结果。
49、规则可以用指定的! important特指为重要的。一个特指为重要的样式会凌驾于与之对立的其它相同权重的样式。同样地,当网页制作者和读者都指定了重要规则时,网页制作者的规则会超越读者的。以下是! important声明的例子:
50、BODY{ background: url(bar.gif) white;
51、background-repeat: repeat-x! important}
52、Origin of Rules(Author's vs. Reader's)
53、正如以前所提及的,网页制作者和读者都有能力去指定样式表。当两者的规则发生冲突,网页制作者的规则会凌驾于读者的其它相同权重的规则。而网页制作者和读者的样式表都超越浏览器的内置样式表。
54、网页制作者应该小心地使用! important规则,因为它们会超越用户任何的! important规则。例如,一个用户由于视觉关系,会要求大字体或指定的颜色,而且这样的用户会有可能声明确定的样式规则为! important,因为这些样式对于用户阅读网页是极为重要的。任何的! important规则会超越一般的规则,所以建议网页制作者使用一般的规则以确保有特殊样式需要的用户能阅读网页。
55、基于它们的特性级别,样式表也可以超越与之冲突的样式表,一个较高特性的样式永远都凌驾于一个较低特性的样式。这只不过是计算选择符的指定个数的一个统计游戏。
56、统计选择符中的HTML标记名格式。
57、最后,按正确的顺序写出三个数字,不要加空格或逗号,得到一个三位数。(注意,你需要将数字转换成一个以三个数字结尾的更大的数。)相应于选择符的最终数字列表可以很容易确定较高数字特性凌驾于较低数字的。以下是一个按特性分类的选择符的列表:
58、#id1{xxx}/* a=1 b=0 c=0-->特性= 100*/
59、UL UL LI.red{xxx}/* a=0 b=1 c=3-->特性= 013*/
60、LI.red{xxx}/* a=0 b=1 c=1-->特性= 011*/
61、LI{xxx}/* a=0 b=0 c=1-->特性= 001*/
62、为了方便使用,当两个规则具同样权重时,取后面的那个。
63、
三、如何写出较好的css
1、较好的css在于可读性、维护性、扩展性、复用性这几个方面。所以只要提高它们就能解决问题,虽然这么说,也不是如此简单的。
2、有人认为CSS不是程序,不需要可读性,有人认为CSS只要写出来就有可读性,因为很简单。抛开各种预处理器不说,原生CSS结构确实简单,没有需要编程的部分,但仍然可能导致混乱。原因有二,一是CSS可以层叠,其中涉及到了优先级和作用范围,如果写的不好,人很难读出其中的意义,二是CSS属性众多,加上CSS3引入了很多用法独特的属性,一个选择器可能包含几十个属性。比如下面这段我随便写的CSS代码:
3、-webkit-box-shadow: 6px 4px 4px red;
4、-moz-box-shadow: 6px 4px 4px red;
5、 border-bottom: 2px solid red;
6、乍一看也没什么,都是border,大致能看出来这段CSS只是为了添加一个红色的阴影让box看起来比较立体。但中间的部分似乎是捣乱的,你可能会说这太傻了,看不到吗。是的,当这3部分散落在上万行的CSS中时,肯定看不到。于是有人很自然的想起了我们可爱的浏览器,没错,在浏览器中可以快速找到作用于目标的CSS样式,但这也是万恶之源。首先我假设你不知道中间那部分东西是为了什么而写的,因为你是靠浏览器找到它的。然后剩下两种可能,不管三七二十一改了再说和看看它为什么存在。前者悲剧的可能性是100%,后者悲剧的可能性是90%,因为你已经掉坑里了,很快我们会发现要修改它还牵扯到了另外的地方,接着在浏览器中探索到另一个莫名其妙的样式,当你弄懂全部的时候,你应该已经把上万行的代码弄了个一清二楚了,也许最幸运的是,浪费了几个小时的时间发现只需要修改一行就能达到目的。
7、当然,我们可以天真的认为,只要把他们写在一起就可以了,这样找起来很简单。而我将继续顺着这样的思路来尝试曝露问题。
8、所谓物以类聚是很有道理的,人们习惯将事物归类,但问题是分类标准,样式并不关心业务,无论是什么文字内容,还是功能有何不同,它在乎的只是样式,比如文字的尺寸,间距和宽高,颜色等等。如果简单的将一个组件的样式放在一起,势必带来的就是小段代码的重复书写。不觉得有多严重?我来举个栗子。
9、 box-shadow: 6px 4px 4px#AA3343;
10、 box-shadow: 6px 4px 4px#AB3633;
11、 box-shadow: 6px 4px 4px#AA3732;
12、 box-shadow: 6px 4px 4px#AA3132;
13、继续说上面的例子,box需要阴影,但如果这个项目的UI统一风格,包括sidebar,navigator以及item都需要这样的阴影呢?再如果,明天客户或者UX一拍脑袋,这个阴影应该是灰色的不该是红色的呢?不要继续天真的认为全局替换是救命稻草。首先,没有几个网站会用red,blur做色调的,你用的应该是#AA3333,这样的代码,然后你发现sidebar用了#A43433,而navigator是#AB3633,等等,item有两个状态,而两个状态对应的颜色是不一样的。这怎么可能?但当你打开浏览器的时候你会发现本来就相差无几的颜色,在阴影中变得一模一样了,谁看的出来呢,当初使用的时候可能也不过是随意的在mockup中取的一个颜色。
14、大量的重复带来的不仅仅是代码的冗余,我们必须靠人力去同步它们,而人很难保证它们的修改是完全一致的,尤其是当它们中引入了一些不一致的独特的东西时。不要小看CSS,其后果就是进度和人力的压力,后面就是PM有没有读过《人月神话》的事了。
15、肯定有人在想,谁让你当初要写成这样呢。我们在读代码的时候最喜欢问,当初为什么要这么写?但慢慢的你会读出它的历史,有时候它是身不由己的。这就涉及到了下一个要讨论的内容。
16、扩展性是一个具有欺骗性的东西,所谓的扩展性其实就是在现有基础上再次开发新东西的性能,但我认为它还必须有前提条件,那就是保持可读性与维护性。
17、简单的追求可维护性是自取灭亡,原因很简单,将新旧代码完全分离的时候扩展性最高,因为不必担心对以前的部分有影响,新的样式可以随意发挥。是不是很神奇,这样想的我们写下的代码,肯定就是前面我们追问的代码。所以自己回答自己吧,当初没考虑可读性和维护性,只想着快点增加新的样式,就这么写了。
18、那什么才是一个好的扩展性呢,简单来说,就是多功能产品。比如一个box,也许它的样式就时
19、似乎我一直在说的就是重复,那我们就来说说复用性,如何才能复用CSS代码是一个很大的问题,比如粒度,是一两个属性进行复用还是一大组选择器进行复用呢,再比如对象,是为了class复用属性,还是为了html复用class呢。这些选择不算太重要,但是带来的影响却很重大,可以说是整个CSS结构的改变。下面继续用box的阴影来讨论复用。
20、-webkit-box-shadow: 6px 4px 4px#A93334;
21、-moz-box-shadow: 6px 4px 4px#A93334;
22、 box-shadow: 6px 4px 4px#A93334;
23、 border-left: 2px solid#A93334\9;
24、 border-bottom: 2px solid#A93334\9;
25、这样看起来我有了一个shadow的class可以给任意的目标加上这个阴影了,但这导致了一个复用的问题,和上面那段捣乱的CSS样式一样,如果item已有另外2个border了,那这个class是无法去除的。所以复用时不仅要考虑需要什么,还要考虑不需要什么。另外一些必须的属性比如display还有overflow等也是要考虑的,因为user agent的原因,很多属性是隐藏在element中的。