CSS және XSL: екі маңызды стильдік тіл. CSS HTML, XML құжаттарын безендіруге арналған, ал XSL – деректерді түрлендіруге. Веб-дизайн, стильдеу туралы біліңіз!
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Компьютерлік технологияда екі негізгі стильдік тіл бар: Каскадтық стильдік кестелер (CSS) және кеңейтілетін стильдік тіл (XSL). Екеуі де стильдік тілдер деп аталғанымен, олардың мақсаттары мен жұмыс істеу әдістері мүлдем әртүрлі.
In computing, the two primary stylesheet languages are Cascading Style Sheets (CSS) and the Extensible Stylesheet Language (XSL). While they are both called stylesheet languages, they have very different purposes and ways of going about their tasks.
Каскадты стиль парақтары
CSS — HTML және XML (соның ішінде XHTML және SVG) құжаттарында құрылымдалған құжаттарды стильдеуге арналған. Ол осы мақсатта жасалған. CSS коды — стильдеуге арналған құжат элементтерінің стильдік ақпаратын анықтау үшін XML емес синтаксис. Құжатты құрылымдау тілі (белгілеу тілі) CSS үшін негізгі шарт. HTML және XUL сияқты белгілеу тілі құжатты стильдеу үшін қарапайым элементтерді, мысалы, `<emphasis>`-ты қалың етіп көрсетуге мүмкіндік береді. CSS құжатты "экрандық ортаға" немесе "беттік ортаға" сәйкес стильдейді. Экрандық орта — гиперсілтемелермен бірге бір бетке орналастырылған, көлденең ені белгілі, ал тік биіктігі шексіз орта. Экрандық ортаның бөліктерін қарау үшін көбінесе прокрутка қолданылады. Бұл "беттік ортадан" өзгеше, онда әрқайсысы белгілі көлденең және тік өлшемдері бар бірнеше беттер болады. Беттік ортаны стильдеу экрандық ортаға тән емес әр түрлі қиындықтарды қамтиды. CSS бастапқыда экрандық орта үшін жасалғандықтан, беттік форматтау мүмкіндіктері жетілмеген. CSS 3.0 нұсқасы CSS-ке беттік көрсету үшін құжаттарды тиімді стильдеуге мүмкіндік беретін жаңа мүмкіндіктерді ұсынады.
CSS is designed around styling a document, structured in a markup language, HTML and XML (including XHTML and SVG) documents. It was created for that purpose. The code CSS is non XML syntax to define the style information for the various elements of the document that it styles. The language to structure a document (markup language) is a prelimit to CSS. A markup language, like HTML and less XUL, may define some primitive elements to style a document, for example <emphasis> to bold. CSS post styles a document to "screen media" or "paged media". Screen media, displayed as a single page (possibly with hyperlinks), that has a fixed horizontal width but a virtually unlimited vertical height. Scrolling is often the method of choice for viewing parts of screen media. This is in contrast to "paged media", which has multiple pages, each with specific fixed horizontal and vertical dimensions. To style paged media involves a variety of complexities that screen media does not. Since CSS was designed originally for screen media, its paged facilities lacked. CSS version 3.0 provides new features that allow CSS to more adequately style documents for paged display.
Кеңейтілетін стильдер парағы тілі
XSL бастапқы жобалаудан бері түпкі мақсатынан мүлдем өзгеше нәрсеге айналды. XSL-дің бастапқы идеясы – парақталған дисплейлік медиаға бағытталған, XML-ге негізделген стильдеу тілін жасау болатын. Бұл міндетті орындау үшін олар процесті екі бөлек қадамға бөлді. Біріншіден, XML құжаты аралық формаға түрлендіріледі. Бұл түрлендіру процесі XSL спецификациясында анықталған XSL стильдік парағымен басқарылады. Бұл түрлендірудің нәтижесі XSL FO деп аталатын аралық тілдегі XML құжаты болады (бұл XSL спецификациясында да анықталған). Дегенмен, түрлендіру қадамын жобалау кезінде жалпы XML түрлендіру тілі тек XML құжатының көрінісін жасаудан гөрі көптеген мақсаттарда пайдалы болатыны анықталды. Осылайша, XSL жұмыс тобынан жаңа жұмыс тобы бөлінді және XSL Transformations (XSLT) тілі XSL FO құжатының стильдік ақпаратынан бөлек деп есептелді. Тіпті бұл бөліну XPath жеке спецификацияға айналғанда кеңейтілді, бірақ ол әлі де XSLT-ге тығыз байланысты. XSLT және XSL FO біріктірілгенде CSS-тен әлдеқайда күрделі болса да, қуатты стильдеу тілін құрайды. XSLT – Тьюринг толық тілі, ал CSS – емес; бұл CSS-те кездеспейтін күш пен икемділіктің деңгейін көрсетеді. Сонымен қатар, XSLT мазмұн жасай алады, мысалы, кітаптағы тараулар негізінде автоматты түрде мазмұндама жасауға, немесе мазмұнды жою/таңдауға, мысалы, кітаптан сөздік жасауға болады. XSLT 1.0 нұсқасы EXSLT кеңейтулерімен немесе XSLT 2.0 нұсқасы бірнеше құжатты да жасауға қабілетті, мысалы, кітаптағы тарауларды жеке беттерге бөлуге болады. Ал CSS тек мазмұнды көрсетпеу арқылы оны жоюға мүмкіндік береді. XSL FO CSS-тен өзгешелігі – XSL FO құжаты дербес болып табылады. CSS оған қоса берілген құжатты өзгертеді, ал XSL FO құжаты (әдетте бастапқы құжатты XSLT арқылы түрлендіру нәтижесі) таза көрініс форматында ұсынылатын барлық мазмұнды қамтиды. Ол парақталған форматтау және жоғары сапалы жинақтау бойынша кең ауқымды мүмкіндіктерге ие. Бірақ ол парақтардың өзін нақты анықтамайды. XSL FO құжаты соңғы парақталған медианы жасау үшін XSL FO процессорлық құралы арқылы өтуі керек, дәл сияқты HTML+CSS веб-браузер арқылы форматталған күйде көрсетілуі тиіс. XSL FO-ның күрделілігі – мәселе, себебі FO процессорларын жүзеге асыру өте қиын. Веб-браузерлердегі CSS жүзеге асырулары әлі де толық үйлесімді емес, және CSS процессорын FO процессорынан жазу әлдеқайда оңай. Дегенмен, бай мазмұнды парақталған медиа үшін әртүрлі жинақтау мәселелерін шешу үшін осындай күрделілік қажет.
XSL has evolved drastically from its initial design into something very different from its original purpose. The original idea for XSL was to create an XML based styling language directed toward paged display media. The mechanism they used to accomplish this task was to divide the process into two distinct steps. First, the XML document would be transformed into an intermediate form. The process for performing this transformation would be governed by the XSL stylesheet, as defined by the XSL specification. The result of this transformation would be an XML document in an intermediate language, known as XSL FO (also defined by the XSL specification). However, in the process of designing the transformation step, it was realized that a generic XML transformation language would be useful for more than merely creating a presentation of an XML document. As such, a new working group was split off from the XSL working group, and the XSL Transformations (XSLT) language became something that was considered separate from the styling information of the XSL FO document. Even that split was expanded when XPath became its own separate specification, though still strongly tied to XSLT. The combination of XSLT and XSL FO creates a powerful styling language, though much more complex than CSS. XSLT is a Turing complete language, while CSS is not; this demonstrates a degree of power and flexibility not found in CSS. Additionally, XSLT is capable of creating content, such as automatically creating a table of contents just from chapters in a book, or removing/selecting content, such as only generating a glossary from a book. XSLT version 1.0 with the EXSLT extensions, or XSLT version 2.0 is capable of generating multiple documents as well, such as dividing the chapters in a book into their own individual pages. By contrast, a CSS can only selectively remove content by not displaying it. XSL FO is unlike CSS in that the XSL FO document stands alone. CSS modifies a document that is attached to it, while the XSL FO document (usually the result of the transformation by XSLT of the original document) contains all of the content to be presented in a purely presentational format. It has a wide range of specification options with regard to paged formatting and higher quality typesetting. But it does not specify the pages themselves. The XSL FO document must be passed through an XSL FO processor utility that generates the final paged media, much like HTML+CSS must pass through a web browser to be displayed in its formatted state. The complexity of XSL FO is a problem, largely because implementing an FO processor is very difficult. CSS implementations in web browsers are still not entirely compatible with one another, and it is much simpler to write a CSS processor than an FO processor. However, for richly specified paged media, such complexity is ultimately required in order to be able to solve various typesetting problems.