How to set up smartphones and PCs. Informational portal
  • home
  • Iron
  • Aligning text in CSS: the text-align property. CSS basics

Aligning text in CSS: the text-align property. CSS basics

Every layout designer is constantly faced with the need to align content in a block: horizontally or vertically. There are some good articles on this subject, but they all offer many interesting, but few practical options, which is why you have to spend extra time to highlight the main thing. I decided to submit this information in the form that is convenient for me so as not to google it anymore.

Aligning Blocks with Known Dimensions

The easiest way to use CSS is to align blocks that have a predetermined height (for vertical alignment) or width (for horizontal alignment).

Alignment with padding

Sometimes you can not center an element, but add borders to it with the " padding".

For example, you have a 200x200px picture and you want to center it in a 240x300 block. We can set the height and width of the outer box = 200px, and add 20 pixels at the top and bottom, and 50 at the left and right.

.example-wrapper1 (background: # 535E73; width: 200px; height: 200px; padding: 20px 50px;)

Aligning absolutely positioned boxes

If the block is set to " position: absolute", then it can be positioned relative to the closest parent with" position: relative ". To do this, all properties need (" top","right","bottom","left") assign the same value to the indoor unit, as well as" margin: auto ".

* There is a nuance: The width (height) of the inner block + the value of left (right, bottom, top) should not exceed the size of the parent block. It is safer to set the left (right, bottom, top) properties to 0 (zero).

.example-wrapper2 (position: relative; height: 250px; background: url (space.jpg);) .cat-king (width: 200px; height: 200px; position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; background: url (king.png);)

Horizontal alignment

Align with "text-align: center"

There is a special property for aligning text in a block " text-align". When the value is set" center"each line of text will be aligned horizontally. For multi-line text, this solution is rarely used, more often this option can be found for aligning spans, links or pictures.

Once I had to come up with text to show how text alignment with CSS works, but nothing interesting came to my mind. At first I decided to copy a nursery rhyme somewhere, but I remembered that this might spoil the uniqueness of the article, and our dear readers will not be able to find it on Google. And then I decided to write this paragraph here - after all, the point is not with it, but the point is in alignment.

.example-text (text-align: center; padding: 10px; background: # FF90B8;)

It should be noted that this property will work not only for text, but also for any inline elements ("display: inline").

But this text is aligned to the left, but it is in the block, which is aligned in the center with respect to the wrapper.

.example-wrapper3 (text-align: center; background: # FF90B8;) .inline-text (display: inline-block; width: 40%; padding: 10px; text-align: left; background: # FFEfee;)

Aligning boxes with margins

Block elements with a known width are easily aligned horizontally if set to "margin-left: auto; margin-right: auto". The abbreviated notation is usually used: " margin: 0 auto"(any value can be used instead of zero). But this method will not work for vertical alignment.

.lama-wrapper (height: 200px; background: # F1BF88;) .lama1 (height: 200px; width: 200px; background: url (lama.jpg); margin: 0 auto;)

This is how it is worth aligning all blocks where possible (where fixed or absolute positioning is not required) - it is the most logical and adequate. Although it seems obvious, I sometimes saw frightening examples with negative margins, so I decided to clarify.

Vertical alignment

There are a lot more problems with vertical alignment - apparently, this was not provided for in CSS. There are several ways to achieve the desired result, but they are all not very pretty.

Aligning with the line-height property

In the case when there is only one line in the block, you can achieve its vertical alignment by applying the " line-height"and setting it to the desired height. To be safe, you should also set" height ", the value of which will be equal to the value of" line-height ", because the latter is not supported in all browsers.

.example-wrapper4 (line-height: 100px; color: # DC09C0; background: # E5DAE1; height: 100px; text-align: center;)

It is also possible to achieve block alignment with multiple lines. To do this, you will have to use an additional wrapper block, and set the line height to it. The inner block can be multi-line, but "inline" is required. You need to apply "vertical-align: middle" to it.

.example-wrapper5 (line-height: 160px; height: 160px; font-size: 0; background: # FF9B00;) .example-wrapper5 .text1 (display: inline-block; font-size: 14px; line-height: 1.5; vertical-align: middle; background: # FFFAF2; color: # FF9B00; text-align: center;)

The wrapper block must have "font-size: 0" set. If you do not set the font size to zero, the browser will add a few extra pixels from itself. You will also have to specify the font size and line height for the inner block, because these properties are inherited from the parent.

Vertical alignment in tables

Property " vertical-align"also affects table cells. With the value" middle "set, the content inside the cell is centered. Of course, table layout is considered archaic these days, but in exceptional cases you can simulate it by specifying" display: table-cell".

I usually use this option for vertical alignment. Below is an example of layout taken from a ready-made project. Of interest is the picture, which is centered vertically in this way.

.one_product .img_wrapper (display: table-cell; height: 169px; vertical-align: middle; overflow: hidden; background: #fff; width: 255px;) .one_product img (max-height: 169px; max-width: 100 %; min-width: 140px; display: block; margin: 0 auto;)

It should be remembered that if an element has "float" other than "none", then it will in any case be block (display: block) - then you will have to use an additional wrapper block.

Aligning with an additional inline element

And for inline elements you can apply " vertical-align: middle". In this case, all elements with" display: inline"that are on the same line will align with the common center line.

You need to create an auxiliary block with a height equal to the height of the parent block, then the desired block will be centered. It is convenient to use the: before or: after pseudo-elements for this.

.example-wrapper6 (height: 300px; text-align: center; background: # 70DAF1;) .pudge (display: inline-block; vertical-align: middle; background: url (pudge.png); background-color: # fff; width: 200px; height: 200px;) .riki (display: inline-block; height: 100%; vertical-align: middle;)

Display: flex and align

If you don't care too much about the Explorer 8 users, or care so much that you're willing to insert some extra javascript for their sake, then you can use "display: flex". Flex boxes do a great job of dealing with alignment issues, and just write "margin: auto" to center the content inside.

So far, this method has practically not come across to me, but there are no special restrictions for it.

.example-wrapper7 (display: flex; height: 300px; background: # AEB96A;) .example-wrapper7 img (margin: auto;)

Well that's all I wanted to write about CSS alignment. Now centering content won't be a problem!

Css text represents a set of properties for formatting the text content of web pages. Using CSS styles to format text allows you to give HTML elements the desired look, so that HTML tags can only be used for their intended purpose - to define the structure of the document.

About Text Properties Added to BOM CSS3- text-overflow, word-break, word-wrap, can be read.

Formatting text in CSS

1. Horizontal alignment of text-align

The property aligns lines of text within a block in width relative to its borders. Applies only to block elements such as paragraphs. Inherited.

Values:
left Left alignment of the element. The default for languages ​​that read left-to-right.
right Right alignment of the element.
center Center alignment of an element controls the alignment of the content, not the elements themselves. Centers each line of the element's text.
justify Justification to the width of the element. In justified text, both ends of the line snuggle against the left and right edges of the parent element. Spaces between words and letters are distributed in such a way that the length of all lines is equal. Different browsers can increase both the spacing between words and the spacing between letters.
initial
inherit

Syntax

P (text-align: left;) p (text-align: right;) p (text-align: center;) p (text-align: justify;)
Rice. 1. The text-align property

2. Text-indent indent

Sets the indentation (ledge) on the first line of an element, giving the illusion of structured text. Applies to any block element, the default value is 0. If there is an image on the first line of a block element, it will shift with the rest of the text. Inherited.

Syntax

P (text-indent: 5px;) p (text-indent: 2%;)
Rice. 2. The text-indent property

3. Line-height

Rice. 3. Row container

The property sets the distance between the baselines of lines of text, defining the amount by which the height of the block of each element is increased or decreased. Controls line spacing - the extra space between lines above and below the text. To determine line spacing, you need to find the difference between line-height and font-size, divide the difference by two, and add each half to the top and bottom of the content area. Takes only positive values. Standard line spacing is equivalent to 120%.

If the line-height and height are equal, aligns the text to the height. Inherited.

Syntax

H1 (line-height: 20px;) h1 (line-height: 200%;) h1 (line-height: 1.2;) h1 (line-height: normal;)
Rice. 4. An example of displaying different line spacing values

4. Vertical alignment vertical-align

Applies only to inline elements, images, and form fields. Does not align the content of a block element. Not inherited.

vertical-align
Values:
baseline Aligns the baseline of an element with the baseline of its parent, aligning the centerline of the element with the centerline of the parent.
sub Makes an element subscript (similar to the tag ). The amount of demotion of an element may vary depending on the user's browser.
super Makes an element superscript (similar to the tag ). However, the values ​​of sup and super do not change the font size; by default, the text of the superscript and descender is the same size as the text of the parent element.
top The top edge of the element is aligned with the top edge of the tallest element in the line.
text-top The top of the element is aligned with the top of the parent element's font.
middle The middle line of an element (usually an image) is aligned with a line through the middle of the parent element.
bottom The bottom edge of the element is aligned with the bottom edge of the lowest element in the line.
text-bottom The bottom of the element is aligned with the bottom of the parent element's font.
length Sets the value in units of length by moving an element a specified distance.
% Doesn't allow setting middle, computed as part of the line-height of the element, not its parent, i.e. if you set vertical-align to 50% for an element with a line-height of 20px, then the baseline of the element is raised by 10px.
initial Sets the property value to its default value.
inherit Inherits the property value from the parent element.

Html, there is a generic parameter called ALIGN. It can be applied with various html tags:

p | h1 | div | table | thead | tbody | tfoot | tr | th | td

Possible values:

Center- center alignment
Left- alignment on the left side
Right- on the right
Justify- by width, left and right. In this case, the appearance of large gaps between words.

Text is justified

Appearance in the browser:

The title is centered

The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified. The text is justified.

The content of this block is right-aligned

Note that the left alignment is automatic. Therefore, there is no need to specify such a value for the align parameter.

Until now, you and I have aligned elements only to the left. More precisely, we didn’t do this at all, and the browser itself, by default, aligns elements to the left. Of course, it would be too boring to align everything to the left. Therefore, there are different ways to center and right align.

The alignment of elements is something that you just need to know when. The first thing to do is to type the simplest page.

Once upon a time there was a tag

I do not advise you to use it now, due to the availability of more modern methods, but I cannot but mention it. It's very, very easy to use. Anything you need to center-align, you put inside this tag. For example, here we are aligning the 1st level heading in the center.



You can add a picture, also aligned in the center, also let's go to the next line using the tag
:


Level 1 heading, centered




It was a tag

which is already deprecated, in addition, contrary to your expectations of the tags and just doesn't exist. Let's say left aligned by default, centered using the tag
, but what about the right?

To solve this problem, the developers came up with a universal way to align elements. Html... The way is to use the so-called containers, which are created using the tag

... That is, everything that needs to be placed in a specific container is placed inside the tag
... And already this tag has an attribute " align", the value of which determines the position of this container. There are three values:" left", "center", "right". By default, it is worth" left"however, I think you are not surprised.

Let's write the same now Html code but with the use of containers, in addition, let's not center align but right.





As you can see, everything works. I advise you to also change the attribute values ​​" align"to look at other kinds of container alignment.

Another way to align elements Html- these are tables, but this topic deserves a separate discussion, so we will talk about it in one of the following articles.

Until then, your page should look like this:






Level 1 heading, centered






Level 1 heading right aligned






Best regards, Mikhail Rusakov.

P.S. If you want to know more about Html, then watch my free course with an example of creating a website at Html:

Text alignment determines its appearance and the orientation of the paragraph edges, and can be left-aligned, right-aligned, centered, or justified. Table 1 shows options for aligning a block of text.

Tab. 1. Ways of text alignment
Left align Right align Center align Justify to width
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.

The most common option is left-alignment, where the left side of the text is pushed to the edge, while the right text remains jagged. Right alignment and center alignment are mainly used in headings and subheadings. It should be borne in mind that when using justification in the text, large spacing may appear between words, which is not very nice.

A paragraph tag is usually used to set text alignment

With the align attribute, which defines the alignment method. Also, a block of text can be aligned using the tag

with a similar align attribute, as shown in table. 2.

Tab. 2. Aligning text using the align parameter
HTML code Description
Adds a new paragraph of text, aligned to the left by default. Small vertical indents are automatically added before and after the paragraph.

Text

Center alignment.

Text

Left alignment.

Text

Text

Width justification.
Text Disables automatic line wrapping, even if the text is wider than the browser window.
Text Allows the browser to do line breaks at the specified location, even if a tag is used .
Text
Center alignment.
Text
Left alignment.
Text
Right alignment.
Text
Width justification.

Left alignment is set by default, so there is no need to specify it again. So align = "left" can be omitted.

Difference between paragraph (tag

) and the tag

in the fact that at the beginning and at the end of the paragraph there is a vertical indentation, which is not the case in the case of using the tag
.

The align attribute is quite versatile and can be applied not only to body text, but also to headings like

... Example 1 shows how to set the alignment in such a case.

Example 1. Text alignment

Text alignment

How to catch a lion?

Brute force method

We divide the desert into a number of elementary sections, the size of which coincides with the overall dimensions of the lion, but at the same time less than the size of the cage. Further, by simple enumeration, we determine the area in which the lion is located, which automatically leads to its capture.

Dichotomy method

We divide the desert into two halves. In one part there is a lion, in the other it is not. Take the lion's half and divide it in half again. We repeat this until the lion is caught.

The result of the example is shown in Fig. one.

Rice. 1. Align text to the right and left

In this example, the title is aligned to the center of the browser window, the selected paragraph is aligned to the right, and the body text is aligned to the left.

Top related articles