User Tools

Site Tools


tanszek:oktatas:techcomm:cascading_style_sheets

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:techcomm:cascading_style_sheets [2024/10/01 09:06] – [4. CSS comments] kissatanszek:oktatas:techcomm:cascading_style_sheets [2026/09/23 13:46] (current) – [Background styling and borders] kissa
Line 1: Line 1:
 ===== CSS (Cascading Style Sheets) ===== ===== CSS (Cascading Style Sheets) =====
  
-==== 1. What is CSS? ====+==== What is CSS? ====
  
 Cascading Style Sheets (CSS) is a fundamental technology used in web development to control the formatting and layout of HTML documents. While HTML provides the structure and content of a web page, CSS allows developers to apply styles, such as colors, fonts, spacing, and positioning, to create visually appealing and user-friendly interfaces. Cascading Style Sheets (CSS) is a fundamental technology used in web development to control the formatting and layout of HTML documents. While HTML provides the structure and content of a web page, CSS allows developers to apply styles, such as colors, fonts, spacing, and positioning, to create visually appealing and user-friendly interfaces.
  
-==== 2. Selectors and declarations ==== +==== Defining CSS styles ====
- +
-CSS is built around selectors and declarations. +
- +
- +
-{{:tanszek:oktatas:techcomm:pasted:20241001-085338.png?480}} +
- +
-**Selectors** specify which HTML elements the styles should target. They can be as simple as selecting an element by its name (e.g., ''p'' for all paragraph elements) or as targeting elements based on classes, IDs, attributes. +
- +
-**Declarations** define the style properties and their values that should be applied to the selected elements. A declaration consists of a property (e.g., ''color'') and a value (e.g., ''blue''), separated by a colon and enclosed in curly braces. For example, ''p { color: blue; }'' changes the text color of all paragraphs to blue. +
- +
-Let's see it in a very simple example: +
- +
-<code XML> +
-<!DOCTYPE html> +
-<html> +
-<head> +
-    <title>Blue Paragraph</title> +
-    <style> +
-        p { +
-            color: blue; +
-        } +
-    </style> +
-</head> +
-<body> +
-    <p>This is a blue paragraph.</p> +
-    <p>This is also a blue paragraph.</p> +
-</body> +
-</html> +
-</code> +
- +
-==== 3. Defining CSS styles ====+
  
 CSS offers three main methods for applying styles to HTML documents: **inline**, **embedded**, and **external CSS**. Each method has its own use cases, benefits, and limitations. CSS offers three main methods for applying styles to HTML documents: **inline**, **embedded**, and **external CSS**. Each method has its own use cases, benefits, and limitations.
Line 90: Line 59:
  
 <code CSS> <code CSS>
 +/* styles.css */
 p { p {
     color: blue;     color: blue;
Line 97: Line 67:
  
 External CSS is ideal for websites because it allows for a consistent style across multiple pages, simplifies maintenance, and improves load times by enabling browsers to cache the stylesheet. External CSS is ideal for websites because it allows for a consistent style across multiple pages, simplifies maintenance, and improves load times by enabling browsers to cache the stylesheet.
-==== 4. CSS comments ====+ 
 +==== Selectors and declarations ==== 
 + 
 +CSS is built around selectors and declarations. 
 + 
 + 
 +{{:tanszek:oktatas:techcomm:pasted:20241001-085338.png?480}} 
 + 
 +**Selectors** specify which HTML elements the styles should target. They can be as simple as selecting an element by its name (e.g., ''p'' for all paragraph elements) or as targeting elements based on classes, IDs, attributes. 
 + 
 +**Declarations** define the style properties and their values that should be applied to the selected elements. A declaration consists of a property (e.g., ''color'') and a value (e.g., ''blue''), separated by a colon and enclosed in curly braces. For example, ''p { color: blue; }'' changes the text color of all paragraphs to blue. 
 + 
 +Let's see it in a very simple example: 
 + 
 +<code XML> 
 +<!DOCTYPE html> 
 +<html> 
 +<head> 
 +    <title>Blue Paragraph</title> 
 +    <style> 
 +        p { 
 +            color: blue; 
 +        } 
 +    </style> 
 +</head> 
 +<body> 
 +    <p>This is a blue paragraph.</p> 
 +    <p>This is also a blue paragraph.</p> 
 +</body> 
 +</html> 
 +</code> 
 + 
 +=== CSS comments ===
  
 Comments in CSS are used to add notes, explanations, or temporarily disable code without affecting the styles applied to a webpage. They are not displayed in the browser and do not impact the page's layout or design. Comments in CSS are used to add notes, explanations, or temporarily disable code without affecting the styles applied to a webpage. They are not displayed in the browser and do not impact the page's layout or design.
Line 109: Line 111:
 </code> </code>
  
-==== 5. Element, ID, and class Selectors ====+==== Selecting elementsclasses and IDs ====
  
-* **Element selector**: Applies to all specified elements. +CSS selectors are patterns used to select and style HTML elements. Three common types of selectors are **element****class**, and **ID** selectors, each serving unique purpose and offering different levels of specificity.
-* **ID selector**: Targets a specific element based on its unique ID+
-* **Class selector**: Targets one or more elements with specific class.+
  
-<code CSS> +An **element selector** targets all instances of a specific HTML element on a webpage. It is defined by simply using the element’s namesuch as ''p'', ''h1'', or ''div''. For example, the selector ''p'' will apply styles to every ''<p>'' tag in the document. In this example, all ''<p>'' elements on the page will be displayed with a font size of 16px and black text color:
-/Element selector, applies to all paragraphs */ +
-+
-    color: blue; +
-}+
  
-/* ID selector, applies to the element with the specific ID "header" */ +<code XML> 
-#header { +<!DOCTYPE html> 
-    font-size: 24px+<html> 
-+<head> 
- +    <style> 
-/* Class selector, applies to all elements with the class "button" *+        p { 
-.button { +            font-size: 16px
-    background-color: green; +            color: black; 
-}+        
 +    </style> 
 +</head> 
 +<body> 
 +    <p>This is a paragraph styled using an element selector.</p> 
 +    <p>Another paragraph with the same styles.</p> 
 +</body> 
 +</html>
 </code> </code>
  
-==== 6. Cascading ==== +A **class selector** targets one or more elements that have the same ''class'' attribute. Class selectors are defined using a period (''.'') followed by the class name. In this exampleboth the ''<p>'' and ''div'' elements with the class highlight will have a yellow background and bold font weight. Since classes can be reused across multiple elements, class selectors offer greater flexibility in styling.
- +
-When multiple rules target the same selector, the later rule will override the previous one.+
  
 <code XML> <code XML>
 +<!DOCTYPE html>
 +<html>
 <head> <head>
     <style>     <style>
-        +        .highlight 
-            color: red;+            background-color: yellow; 
 +            font-weight: bold;
         }         }
 +    </style>
 +</head>
 +<body>
 +    <p class="highlight">This paragraph is styled using a class selector.</p>
 +    <p>This paragraph is not highlighted.</p>
 +    <div class="highlight">This div is also styled using the same class selector.</div>
 +</body>
 +</html>
 +</code>
  
-        p +An **ID selector** targets a single, unique HTML element by referencing its ''id'' attribute. ID selectors are denoted using the ''#'' symbol followed by the ID name. Here, only the ''<h1>'' element with ''id="main-header"'' is styled, while other elements remain unaffected. This makes ID selectors ideal for targeting only specific elements. 
-            colorgreen;+ 
 +<code XML> 
 +<!DOCTYPE html> 
 +<html> 
 +<head> 
 +    <style> 
 +        #main-header 
 +            font-size: 24px; 
 +            text-aligncenter;
         }         }
     </style>     </style>
 </head> </head>
 <body> <body>
-    <p>This paragraph will be green.</p>+    <h1 id="main-header">This is a header styled using an ID selector.</h1> 
 +    <p>This paragraph is not affected by the ID selector.</p>
 </body> </body>
 +</html>
 </code> </code>
  
-==== 7Role of ''span'' and ''div'' elements ====+In summary, element selectors are used for broad styling, ID selectors offer targeted styling for unique elements, and class selectors provide versatility by enabling the styling of multiple elements at onceUnderstanding these selectors and how to use them together is key to writing efficient and maintainable CSS. 
 + 
 +Element selectors are marked with the name of the member, class selectors are marked with a ''.'' and the name of the class, and ID selectors are marked with a ''#'' and the identifier: 
 + 
 +^ Selector type     ^ HTML example                   ^ CSS selector 
 +| Element selector  | <p>Test</p>                    | p             | 
 +| Class selector    | <p class="highlight">Test</p>  | .highlight    | 
 +| ID selector       | <p id="main-text">Test</p>     | #main-text    | 
 + 
 +==== Role of span and div elements ==== 
 + 
 +The **span** and **div** elements are fundamental components in HTML used for grouping and organizing content. They serve as containers that can be styled using CSS. 
 + 
 +The ''span'' element is an **inline container**, meaning it only takes up as much width as its content. It is typically used to style or manipulate small portions of text. In this example, the ''span'' is used to color only the word "blue" without affecting the rest of the text. It is perfect for applying specific styles or behaviors to parts of a sentence, such as changing text color or font weight: 
 + 
 +<code XML> 
 +<p>This is a <span style="color: blue;">blue</span> word in a paragraph.</p> 
 +</code>
  
-''span'': An inline element, which is used to mark portion of text. +The ''div'' element is a **block-level container**, meaning it takes up the full width of its parent element by default and creates a line break before and after it. It is commonly used to group larger sections of content, such as paragraphs, images, or other block-level elementsFor example:
-''div'':block element, which is used to group multiple contents into a block.+
  
 <code XML> <code XML>
-<p>This is a <span style="color: red">red</span> text.</p> +<div style="background-colorlightgrey;"> 
-<div style="font-weightbold"> +    <h1>Section Title</h1
-    <p>This is bold text.</p+    <p>This paragraph is inside a div container.</p>
-    <p>So is this.</p> +
-    <p>And this too.</p>+
 </div> </div>
 </code> </code>
  
-==== 8. Background styling ====+==== Text styling and element sizing ====
  
-The ''background'' property defines the background style of an element.+There are several properties available for text formatting. 
 + 
 +<code CSS> 
 +p { 
 +    font-family: Arial; 
 +    font-size: 16px; 
 +    font-weight: bold; 
 +    font-style: italic; 
 +    text-decoration: underline; 
 +    text-align: justify; 
 +
 +</code> 
 + 
 +If you are interested, [[https://www.w3schools.com/css/tryit.asp?filename=trycss_text|try more here]]. 
 + 
 +The ''width'' and ''height'' properties allow you to set the dimensions of an element. 
 + 
 +<code CSS> 
 +img { 
 +    width: 100px; 
 +    height: 100px; 
 +
 +</code> 
 + 
 +==== Background styling and borders ==== 
 + 
 +Background styling in CSS allows developers to customize the appearance of an element's background, enhancing the overall visual appeal of a webpage. There are several properties associated with background styling that can be used to control color, images, gradients, and positioning. For example:
  
 <code CSS> <code CSS>
Line 181: Line 244:
 </code> </code>
  
-==== 9. Margin, padding and border ==== +The ''border'' property adds a line around an element. It combines the border width, style, and color, while ''border-radius'' can be used to round the cornersFor example:
- +
-The ''margin'' is the outer space around an element, while the ''padding'' is the inner space between the content and the border. The ''border'' defines the outline of the elementThis is called the "box model." +
- +
-{{:tanszek:oktatas:techcomm:pasted:20240905-153005.png}}+
  
 <code CSS> <code CSS>
 div { div {
-    margin: 10px; +    border: 1px solid red;
-    padding: 20px; +
-    border: 1px solid black;+
     border-radius: 5px;     border-radius: 5px;
 } }
 </code> </code>
  
-==== 10. Setting width and height ====+==== Box model ====
  
-The ''width'' and ''height'' properties allow you to set the dimensions of an element.+The **box model** is a fundamental concept in CSS that describes how elements are structured and spaced on a webpage. Every HTML element is represented as a rectangular box consisting of four distinct areas: **margin**, **border**, **padding**, and the **content** itself. Understanding the box model is crucial for effective layout and design.
  
-<code CSS+{{:tanszek:oktatas:techcomm:pasted:20240905-153005.png}} 
-img { + 
-    width100px+The ''margin'' is the outer space around an element, while the ''padding'' is the inner space between the content and the border. The ''border'' defines the outline of the element. 
-    height100px+ 
-}+==== Margin and padding ==== 
 + 
 +The example below shows how to format a button. Try what happens when you change the button's border, margin and padding properties! 
 + 
 +<code XML
 +<!DOCTYPE html> 
 +<html> 
 +<head> 
 +    <title>Styled Button Example</title> 
 +    <style> 
 +        .styled-button { 
 +            colorgreen
 +            background-colorlightgreen
 +            margin: 10px; 
 +            padding: 20px; 
 +            border: 1px solid red; 
 +            border-radius: 5px; 
 +        } 
 +    </style> 
 +</head> 
 +<body> 
 +    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p> 
 +    <button class="styled-button">Click me!</button> 
 +    <p>Maecenas sapien arcu, finibus eget dignissim quis, placerat vel ante.</p> 
 +</body> 
 +</html>
 </code> </code>
  
-==== 11. Text styling ====+==== Cascading ====
  
-There are several properties available for text formatting.+By default, when multiple rules target the same selector, the later rule will override the previous one:
  
-<code CSS+<code XML
-p { +<head> 
-    font-family: Arial; +    <style> 
-    font-size: 16px; +        p { 
-    font-weightbold+            colorred
-    font-style: italic;+        }
  
-    text-decoration: underline; +        p { 
-    text-alignjustify+            colorgreen
-}+        } 
 +    </style> 
 +</head> 
 +<body> 
 +    <p>This paragraph will be green.</p> 
 +</body>
 </code> </code>
  
 +==== Specificity ====
 +
 +When different selectors target the same element and define different values for the same property, **specificity** helps the browser decide which declaration to apply. For ordinary CSS rules in the same stylesheet, outside cascade layers and without ''!important'', a more specific selector takes priority over a less specific one, even if the less specific rule appears later.
 +
 +For the selector types introduced above, the order of priority is:
 +
 +  * **ID selectors**, such as ''#main-text'', have the highest specificity.
 +  * **Class selectors**, such as ''.highlight'', have higher specificity than element selectors.
 +  * **Element selectors**, such as ''p'', have the lowest specificity of these three types.
 +
 +Let's see it in a simple example:
 +
 +<code XML>
 +<!DOCTYPE html>
 +<html>
 +<head>
 +    <title>CSS Specificity</title>
 +    <style>
 +        #main-text {
 +            color: red;
 +        }
 +
 +        .highlight {
 +            color: green;
 +        }
 +
 +        p {
 +            color: blue;
 +        }
 +    </style>
 +</head>
 +<body>
 +    <p id="main-text" class="highlight">This paragraph will be red.</p>
 +    <p class="highlight">This paragraph will be green.</p>
 +    <p>This paragraph will be blue.</p>
 +</body>
 +</html>
 +</code>
 +
 +All three selectors match the first paragraph, but the ID selector wins, so its text is red. The second paragraph matches the class and element selectors, so the class selector makes it green. Only the element selector matches the third paragraph, making it blue. The element selector appears last, but this does not allow it to override the more specific selectors.
 +
 +For selectors that combine several parts, specificity is compared by counting **IDs**, then **classes**, then **elements**. The counts are compared in this order, rather than added together into a single score. For example, ''p.highlight'' is more specific than ''.highlight'' because both contain one class selector, but ''p.highlight'' also contains an element selector. Any number of class selectors still cannot outweigh an ID selector. Attribute selectors and pseudo-classes count in the class category, while pseudo-elements count in the element category; some special pseudo-classes have additional rules.
 +
 +If two competing selectors have the **same specificity**, the later declaration wins under the same conditions, as shown in the Cascading example. Specificity is compared separately for each property, so a rule that loses for ''color'' can still provide another property, such as ''font-size''.
 +
 +**Inline styles** normally take priority over normal declarations in stylesheets. The ''!important'' annotation changes a declaration's importance, rather than increasing its selector's specificity, and an important stylesheet declaration can override a normal inline style. Prefer clear selectors and reusable classes instead of relying on ''!important'' to resolve styling conflicts.
  
-==== 12. Exercise ====+==== Exercise ====
  
-Create the following webpage by using HTML and CSS. Use inline CSS for formatting the text, and also apply class-based and id-based selectors!+Create the following webpage using HTML and CSS. Use embedded CSS, and format the content with inline, class-based and id-based selectors!
  
-Feel free to use online resources (e.g. [[https://www.w3schools.com/css/|W3Schools CSS tutorial]]) as help.+Feel free to use online resources (e.g. [[https://www.w3schools.com/css/|W3Schools CSS tutorial]]) as help. The raw text of the webpage can be found below the screenshot.
  
 {{:tanszek:oktatas:techcomm:pasted:20240905-153937.png?600}} {{:tanszek:oktatas:techcomm:pasted:20240905-153937.png?600}}
tanszek/oktatas/techcomm/cascading_style_sheets.1727773591.txt.gz · Last modified: by kissa