2010-04-19 31 views
46

Loại ngôn ngữ nào là CSS?Loại ngôn ngữ nào là CSS?

nghiêng đầu tiên của tôi là để gọi nó là một ngôn ngữ đánh dấu ... nhưng nó không thực sự phù hợp với những khuôn:

Một ngôn ngữ đánh dấu là một hệ thống cho chú thích một văn bản trong một cách đó là có thể phân biệt cú pháp với cú pháp văn bản đó. - wikipedia

CSS sử dụng bộ chọn khác nhau để áp dụng tính đến các yếu tố trong HTML, ngôn ngữ đánh dấu

+2

Tôi nghĩ rằng khi CSS phát triển nó sẽ trở nên dễ dàng hơn để mô tả. Thú vị bổ sung gần đây như khả năng tuyên bố hình ảnh động của các yếu tố trên các sự kiện nhất định. – Finbarr

Trả lời

32

Tôi có thể nói nó là một tên miền cụ thể ngôn ngữ declarative.

+0

Điều này có thể đúng, nhưng nó hầu như không phải là định nghĩa hữu ích; vì hầu hết các ứng dụng của XML, thực chất là các DSDL, cũng như rất nhiều thứ khác. –

+3

Định nghĩa DSDL trở nên hữu ích khi bạn biết tên miền là gì. :) –

+1

@Vivian Paliath: Có; nhưng định nghĩa * của * một cái gì đó như là một DSDL không phải là đặc biệt như vậy. –

2

CSS chắc chắn là hầu hết các ngôn ngữ:

Wikipedia đề cập đến css như một 'ngôn ngữ bản định kiểu '

http://en.wikipedia.org/wiki/Style_sheet_language

Cũng từ W3C người đã phát triển CSS: (so sánh )

Các tính năng độc đáo mà CSS có thể được sử dụng để kiểu HTML & tài liệu XML. XSL, mặt khác, có thể chuyển đổi tài liệu. Ví dụ, XSL có thể được sử dụng để chuyển đổi dữ liệu XML thành các tài liệu HTML/CSS trên máy chủ Web. Bằng cách này, hai ngôn ngữ bổ sung cho nhau và có thể được sử dụng cùng nhau.

Cả hai ngôn ngữ đều có thể được sử dụng để tạo kiểu tài liệu XML.

Như bạn có thể thấy từ câu thứ hai W3C dùng để chỉ CSS làm ngôn ngữ.

http://www.w3.org/Style/

Và báo giá tiếp theo một lần nữa từ cùng một bài viết:

Thực tế là W3C đã phát triển XSL ngoài CSS đã gây ra một số rắc rối. Tại sao phát triển ngôn ngữ bản định kiểu thứ hai khi những người triển khai thậm chí không hoàn thành phiên bản đầu tiên? Câu trả lời có thể được tìm thấy trong bảng dưới đây:

      CSS  XSL 
Can be used with HTML?  yes  no 
Can be used with XML?  yes  yes 
Transformation language?  no  yes 
Syntax      CSS  XML 
+0

Vâng, tôi đã thấy điều đó. Bài báo chỉ thực sự đưa ra một ví dụ về ngôn ngữ "stylesheet" là ... và đó là CSS. –

+0

Vâng, tôi cũng nghĩ điều đó thật kỳ lạ. Nhưng sau đó nó có thể là người duy nhất của loại này cho đến nay. – dkinzer

5

CSS không phải là thực sự ngôn ngữ, mỗi lần; nó là một cú pháp để mô tả các chỉ thị cấu hình.

Thực ra, không phải là những thứ này; CSS là một mô tả về một số mã thông báo và ý nghĩa trực quan của chúng; Các tệp .css chứa các mã thông báo này được cấu trúc theo cách cho phép máy tính phân tích cú pháp chúng. Các khai báo CSS có thể có dạng khai báo name = "value" trong các tài liệu SVG; và .css cấu trúc tập tin có thể dễ dàng được sử dụng để, nói, có chứa mô tả đơn vị trong một lặp đi lặp lại đặc biệt vô lý của FreeCiv.

Định nghĩa của Wikipedias là ngôn ngữ dạng bảng có vẻ giống như một định nghĩa bắt buộc về sự khái quát hóa một hiện tượng kỳ dị; và rõ ràng là nó không phải là ngôn ngữ đánh dấu, vì nó không thực sự, tự nó, đánh dấu bất cứ thứ gì.

+0

Tôi hoàn toàn đồng ý rằng định nghĩa của Wikipedia bị buộc phải một chút. –

+1

Theo W3C, CSS chắc chắn là ngôn ngữ và có ít nhất ba ngôn ngữ thuộc loại ngôn ngữ này: css, xpath, xslt - http://www.w3.org/Style/ – dkinzer

+8

Tại sao CSS không phải là ngôn ngữ? Rõ ràng, nó không phải là một ngôn ngữ lập trình, nhưng nó có ngữ pháp riêng của nó, vì vậy nó/là/ngôn ngữ chính thức. –

5

Cú pháp, CSS là sự kết hợp của hai ngôn ngữ: ngôn ngữ của bộ chọn, là một mẫu phù hợp, như regexps hoặc xpath và ngôn ngữ của thuộc tính, có thể được phân loại là "khai báo thủ tục", vì các thuộc tính cơ bản là các toán tử gán. Ở một mức độ chủ quan, css rõ ràng đủ điều kiện như là lộn xộn xấu xí, giống như mọi trái cây khác của nỗ lực tập thể trên lĩnh vực thiết kế ngôn ngữ ("lạc đà là một con ngựa được thiết kế bởi ủy ban").

+14

... và C++ là một con bạch tuộc được làm bằng cách đóng đinh thêm chân vào một con chó. –

+0

@Michael: Đó thực sự là một mô tả khá chính xác về C++ –

+3

Tôi không chắc chắn tôi sẽ gọi bất kỳ phần nào của CSS "thủ tục" trừ khi bạn đang nói về các biểu thức, nhưng tôi vui vì ai đó đồng ý rằng CSS là một xấu xí lộn xộn. Khi, trong một ngôn ngữ * định dạng *, cách tốt nhất để căn giữa thứ gì đó là cung cấp cho nó một thuộc tính 'margin: auto;' (và chiều rộng rõ ràng), bạn biết có gì đó sai. – tloflin

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