CSS - Quiz #3 Lecture Code: 170375 http://decal.aw-industries.com Web Design: Basic to Advanced Techniques Today’s Agenda Quiz & Attendance Announcements Revisit Absolute / Relative URLs CSS Selector Motivation CSS / Photoshop Layouts – Part 1 Finish Quiz & Attendance Lab Web Design: Basic to Advanced Techniques Announcements Mini Project 2 due tonight by 11:59PM Battleship or Instant Messenger? Need help? Post in the Chatroom! Did you finish a project early? Help others in the Chatroom! Confused about course material? Email me and take advantage of lab after class. Web Design: Basic to Advanced Techniques Absolute vs. Relative URLs Are you linking to a different domain? yes http://B.com/redSmiley.jpg Use absolute URL no B.com A.com Is the item you’re linking to in a sub-folder of or in the same folder as the html document? Absolute URL folderN/redSmiley.jpg Use relative URL A.com no yes A.com /folderA … /folderN /folderB/redSmiley.jpg Use root relative URL /folderA /folderB Relative URL Root Relative URL CSS Selector Motivation Say we want to style all the links that appear inside paragraphs of class .myPara HTML <p class=“myPara”> <a class=“pLink”></a> <a class=“pLink”></a> <a class=“pLink”></a> <a class=“pLink”></a> <a class=“pLink”></a> </p> HTML <p class=“myPara”> <a ></a> <a></a> <a></a> <a></a> <a></a> </p> CSS .pLink { } CSS .myPara a { } We want to be as efficient as possible with our coding to keep file sizes down. Web Design: Basic to Advanced Techniques Spring 2010 Tuesdays 7-8pm 200 Sutardja-Dai Hall CSS/Photoshop Layouts – Part 1 Web Design: Basic to Advanced Techniques Building Our Layout Toolbox HTML Element: <div></div> CSS Attributes: display: block; block inline inline-block position: absolute; absolute relative Also top/bottom, left/right margin: 10px 10px; Also padding border: 1px solid #000000; background-color: #000000; background-image: url(image.gif); background-repeat background-position height: 10px; Also width float: left; clear: right; z-index: 100; div Element Without CSS With CSS How exactly is CSS doing this? What’s being styled? div Element …continued View Source <div > Source Code for Menu <div> <div></div> <div></div> <div></div> <div></div> <div></div> </div > </div> div Element …continued div’s are our general layout building blocks/containers Used to logically group HTML elements Separate regions of code into functional regions “these HTML elements make up the menu system” Like span’s they have no visual effect on our HTML documents by themselves span’s are inline elements div’s are block elements What happens when we wrap a set of elements in div tags? div Element …continued <h3>Menu</h3> <a></a> <a></a> <a></a> <a></a> <a></a> <a>print story</a> <h1>News Story</h1> <p> <a></a> </p> <div id=“menu”> <h3>Menu</h3> <a></a> <a></a> <a></a> <a></a> <a></a> </div> <div id=“newsStory”> <a>print story</a> <h1>News Story</h1> <p> <a></a> </p> </div> Spot the div’s Whenever you see multiple HTML elements behaving in unison, suspect a div. CSS’n div’s <div id=“everything”> <div id=“arrow”></div> <div id=“menu”> …many links </div> <div id=“content”> <div class=“message”></div> …more messages </div> </div> CSS’n div’s …continued After we break up our layout into div’s we use CSS to position and style them. CSS Property: display Example: a { display: block; } block Common Values: block inline none inline inline Hides object inline-block (not supported in IE 6, inconsistent IE 7) Allows block level elements to be placed next to each other For compatibility: use floats instead Valid HTML: Still don’t nest block elements in inline elements. HTML syntax independent of CSS. CSS Properties: height, width Can only be set on block level elements and a few inline elements such as <img /> Example: height: 100px; div { width: 100px; height: 100px; } div { width: 100%; height: 100%; } Common Values: Pixels: 20px Percentage of parent: 100% Not set/auto: width of contents width: 100px; CSS Properties: height, width …continued width: 100px; width: 100px; height: auto; height: 100px; height: 100px; width: 100px; height: 100px; width: 100%; height: 100%; height: 100%; width: 100%; width: auto; CSS Property: border Example: div { border: 1px solid #000000; } div { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } Common Values: Border width: 1px Border style: solid •solid •dotted •dashed •double •groove •ridge •inset •outset Border color: #000000 div div { border: 1px solid #000000; } CSS Properties: margin, padding Margin: space between this object and others Padding: space between the objects border and contents Example: div { margin: 5px 10px; } div { margin: 5px 10px 5px 10px; } Order: top, right, bottom, left div { margin-top: 5px; margin-bottom: 5px; margin-left: 10px; margin-right: 10px; } Padding has same syntax margin Div_1 Common Values: Pixels: 10px Div_2 padding CSS Properties: position Example: div { position: absolute; } Common Values: absolute Removes object from flow of document. Object takes up no space. Relative to closest parent who has its position set. If no parent qualifies, relative to document boundaries. relative Relative to the objects natural location. fixed Removes object from flow of document. Object takes up no space. Relative to browser window’s boundaries. static Don’t typically use this because it is already the default behavior. CSS Properties: top/bottom, left/right Used in conjunction with position Example: div { position: absolute; top: 0px; left: 0px; } Common Values: Pixels: 10px code: position Document Flow <span>A</span><div>B</div><span>C</span> div { position: static; } div { position: relative; } span: “A” span: “A” div { position: absolute; } or div { position: static; } span: “A” div: “B” div: “B” div: “B” span: “C” span: “C” span: “C” top & left Effects div { div { position: static; top: 10px; left: 10px; } position: relative; top: 10px; left: 10px; } top: 0px; left: 0px; div { position: absolute; top: 10px; left: 10px; } top: 0px; left: 0px; top: 0px; left: 0px; span: “A” span: “A” 10px div: “B” span: “C” div: “B” 10px div: “B” span: “C” 10px span: “A” 10px div: “B” div: “B” span: “C” code: absolute References <div id=“A”><div id=“B”></div></div> top: 0px; left: 0px; top: 0px; left: 0px; A AB B div { position: absolute; top: 10px; left: 10px; } div { position: absolute; } #A { top: 10px; left: 10px; } #B { bottom: 10px; right: 10px; } absolute vs. fixed Please see included absolute_vs_fixed.html file for demo. CSS Properties: float Effect on itself: A floated object moves left or right (depending on the value of float) until it encounters another floated object or its container’s boundaries. Effect on others: Like water flows around a floating item, adjacent objects flow around an object that has its float property set Also a type of positioning but not set with position. Can only be set if the position is relative, static or not set. Should set width and height of object when using float, else behavior can be unpredictable. Example: div { float: left; width: 100px; height: 100px; } Common Values: left right none CSS Properties: clear Used to specify behavior of object interacting with a floated object clear forces the object to appear after the floated object ( if it’s a left float, right float, or both types ) Example: p { clear: left; } Common Values: left right both none float & clear Demo Please see included float.html file for demo. CSS Property: z-index Object must have position set to relative, absolute, or fixed. If not set, later elements have higher z-index’s that earlier ones. Higher numbers on top of lower numbers. Example: div { position: absolute; z-index: 100; } later Common Values: positive integers default default earlier 100 99 99 100 CSS - Quiz #3 Lecture Code: 170375 Then… Lab http://decal.aw-industries.com Web Design: Basic to Advanced Techniques