css 6 - box model

56
CSS The Box Model Harold Maduro

Upload: harold-maduro

Post on 17-Dec-2014

3.476 views

Category:

Technology


0 download

DESCRIPTION

Curso de Estándares Web - Día #7 * Explicación del Box Model * Sintaxis * Margin, Padding, Border, Width, Height * IE5 Bug

TRANSCRIPT

Page 1: CSS 6 - Box Model

CSSThe Box Model

Harold Maduro

Page 2: CSS 6 - Box Model

xHTML

Cada elemento HTML, genera una caja rectangular llamada “element box”.

Page 3: CSS 6 - Box Model

xHTML 1.0Tipos de elementos o “element box”

• Block Elements

• Inline Elements

Page 4: CSS 6 - Box Model

xHTML 1.0Block Element

• Como por ejemplo: P, H1, H2, DIV

• Genera nuevas líneas antes y después de su recuadro en el “normal flow” del documento

• Se acomodan verticalmente, uno debajo del anterior

• Un block element puede tener como hijos y descendientes a otros block elements y a inline elements

Page 5: CSS 6 - Box Model

xHTML 1.0Inline element

• Como STRONG, EM, SPAN

• No generan nuevas líneas antes y después de su contenido

• Son descendientes de un block element

• Un inline element sólo puede tener como hijos y descendientes a otros inline elements

• No es posible que un inline element tenga como hijo o descendiente a un block element

Page 6: CSS 6 - Box Model

Block Element

Cada elemento en el documento, es considerado como una caja rectangular (de un ancho y alto específico) que guarda un contenido (content area); el cual está rodeado de padding, borders y margins.

Page 7: CSS 6 - Box Model

Block Element

• Contenido (el texto)

• Margins

• Paddings

• Border

• Ancho (width)

• Alto (height)

Anatomía

Page 8: CSS 6 - Box Model

Block Element

Los margins siempre son transparentes. Los bordes pueden ser de distintos colores, formas y tamaños. El background del elemento ocupa toda la parte posterior del contenido y del padding, hasta topar con el border.

Page 9: CSS 6 - Box Model

<p> Content Area </p>

Page 10: CSS 6 - Box Model
Page 11: CSS 6 - Box Model

Interactive CSS Box Model Demo

http://redmelon.net/tstme/box_model/

Douglas Livingstone

Page 12: CSS 6 - Box Model

Width

p { width: auto; }

p { width: 500px; }

p { width: 50%; }

p { width: 20em; }

p { width inherit; }

El ancho del elemento

Page 13: CSS 6 - Box Model

Height

p { height: auto; }

p { height: 500px; }

p { height: 20em; }

p { height inherit; }

El alto del elemento

Page 14: CSS 6 - Box Model

Width & Height

Son ignorados si se le aplican a un inline element.

Page 15: CSS 6 - Box Model

Margins

Los margins están afuera del border.

Page 16: CSS 6 - Box Model

Margins

Es el espacio vacío entre dos elementos.

Page 17: CSS 6 - Box Model

Margins

Margin

Page 18: CSS 6 - Box Model

MarginsSe puede especificar cada lado por separado

p { margin-top: 20px; margin-left: 25px; margin-right: 66px; margin-bottom: 100px;}

Page 19: CSS 6 - Box Model

MarginsSe puede utilizar la sintaxis resumida

p { margin: 10px 20px 30px 40px; }

Clockwise: arriba, derecha, abajo, izquierda

Page 20: CSS 6 - Box Model

MarginsSe puede utilizar la sintaxis resumida

p { margin: 10px 20px 30px 40px; }

Clockwise: top, right, bottom, left

Page 21: CSS 6 - Box Model

MarginsSe puede utilizar la sintaxis resumida

TRouBLe

Clockwise: top, right, bottom, left

Page 22: CSS 6 - Box Model

MarginsSe pueden mezclar diferentes unidades de medida

p { margin: 10px 20in 30% 40em; }

Page 23: CSS 6 - Box Model

MarginsSe puede especificar que todos los lados tengan el mismo margin

p { margin: 20px; }

Page 24: CSS 6 - Box Model

MarginsMargin Collapse

Los margins de arriba y abajo tienen una propiedad diferente a los laterales; llamada “margin collapse”.

Cuando hay dos elementos posicionados uno arriba del otro; el espacio entre ellos es el tamaño del margin más grande; no el tamaño de los dos márgenes sumados.

Page 25: CSS 6 - Box Model

MarginsMargin Collapse

Si le especifican a los P un margin top de 10px y un margin bottom de 10px; el espacio entre dos P será de 10px, no de 20px.

Page 26: CSS 6 - Box Model

MarginsMargin Collapse

Si le especifican a los DIV un margin bottom de 20px y otro con un margin top de 15px; el espacio entre dos DIV será de 20px, no de 35px, ni 25px.

Page 27: CSS 6 - Box Model

MarginsMargin Collapse

margin-bottom: 20px

margin-top: 15px

margin-top: 15pxmargin-top: 20px

Page 28: CSS 6 - Box Model

Borders

Inserta un (¡gasp!) borde alrededor del objeto.

Page 29: CSS 6 - Box Model

Borders

Border

Content Area

Page 30: CSS 6 - Box Model

Borders

Son una o dos líneas que rodean el contenido del elemento.

Page 31: CSS 6 - Box Model

BordersBordes que rodean a todo el elemento

p { border-style: dashed; border-color: #f00; border-width: 10px;}

Page 32: CSS 6 - Box Model

p { border-style: dashed; border-color: #f00; border-width: 10px;}

Borders StylesSon distintos tipos o estilos de borde

Page 33: CSS 6 - Box Model

Borders Styles

Valores Disponiblesnonedotteddashedsoliddoublegrooveridgeinsetoutset

Son distintos tipos o estilos de borde

Page 34: CSS 6 - Box Model

Borders ColorSe especifica el color del borde.

p { border-style: dashed; border-color: #f00; border-width: 10px;}

Page 35: CSS 6 - Box Model

Borders ColorSe puede especificar un border color, pero el borde hereda el color del elemento, en el caso de no ser especificado.

p { border-style: dashed; color: red; }

p { border-style: dashed; border-color: #f00; }

Page 36: CSS 6 - Box Model

Borders WidthEl ancho del borde

p { border-style: dashed; border-color: #f00; border-width: 10px;}

Page 37: CSS 6 - Box Model

Borders WidthEl ancho del borde

p { border-width: thick; }

p { border-width: 2px;}

Page 38: CSS 6 - Box Model

Borders WidthValores

thinmediumthick( tamaño en unidad de medida )inherit

Page 39: CSS 6 - Box Model

Borders

p { border-width: 2px; border-color: #f00; border-style: solid;}

Page 40: CSS 6 - Box Model

BordersSe puede detallar el lado que queremos modificar

p { border-left-with: 1px; border-left-style: dotted; border-left-color: #333;}

Page 41: CSS 6 - Box Model

BordersSe puede detallar bordes diferentes para cada lado

p { border-left-with: 1px; border-left-style: dotted; border-left-color: #333; border-top-with: 3px; border-top-style: solid; border-top-color: #f00;

border-bottom-with: 10px; border-bottom-style: double; border-bottom-color: yellow; border-right-with: 5px; border-right-style: groove; border-right-color: #000;

}

Page 42: CSS 6 - Box Model

BordersVersión Resumida

(Short hand version)

p { border-left: 1px solid #00f;}

Page 43: CSS 6 - Box Model

BordersVersión Resumida

Se pueden especificar los cuatro lados por separado

p { border-top: 1px solid #000; border-right: 2px groove #fff; border-bottom: 3px dashed #333; border-left: 4px solid #00f;}

Page 44: CSS 6 - Box Model

BordersVersión resumida igual para todos los lados

p { border: 1px solid #00f; }

Page 45: CSS 6 - Box Model

PaddingEs el espacio entre el contenido y el borde

Comparte el mismo color o imagen de fondo (background) que se le aplica al contenido del elemento.

Page 46: CSS 6 - Box Model

Padding

Content Area

Border

Padding

Page 47: CSS 6 - Box Model

PaddingSe puede especificar cada lado por separado

p { padding-top: 20px; padding-left: 25px; padding-right: 66px; padding-bottom: 100px;}

Page 48: CSS 6 - Box Model

PaddingSe puede utilizar la sintaxis resumida

p { padding: 10px 20px 30px 40px; }

Clockwise: arriba, derecha, abajo, izquierda

Page 49: CSS 6 - Box Model

PaddingSe puede especificar que todos los lados tengan el mismo padding

p { padding: 20px; }

Page 50: CSS 6 - Box Model

El Box Model Completo

Page 51: CSS 6 - Box Model

Bugs

Page 52: CSS 6 - Box Model

Internet Explorer 5.0

Internet Explorer 5.0 interpreta incorrectamente el box model.

Para IE 5, el width incluye el tamaño total del contenido (width), paddings y borders. Resultado: cajas más chicas en IE 5.

IE 5 también permitía aplicarle width y height a elementos inline.

Page 53: CSS 6 - Box Model

Internet Explorer 5.0

Para solucionarlo, podemos utilizar:

* El box model hack

* Especificar un set de stylesheets diferente para IE 5 con el conditional

* Podemos dejar de especificar paddings y borders para elementos que tienen declarado un width específico.

Page 54: CSS 6 - Box Model

Box Model HackPara IE 5

http://www.tantek.com/CSS/Examples/boxmodelhack.html

Tantek Çelik

Page 55: CSS 6 - Box Model

Bibliografía

CSS: The Definitive Guide

Amazon: http://tinyurl.com/5hs7jf

Eric Meyer

Page 56: CSS 6 - Box Model

W3C SpecCSS 2 Box Model

http://www.w3.org/TR/CSS21/box.html

W3C