Discussions about the semantics of HTML code with examples. Coding Semantically correct code

Semantics(French sémantique from ancient Greek σημαντικός - denoting) - the science of understanding certain signs, sequences of symbols and others symbols. This science is used in many fields: linguistics, proxemics, pragmatics, etymology, etc. I can’t imagine what these words mean and what all these sciences do. And it doesn’t matter, I’m interested in the issue of using semantics in website layout.

The note

I will not touch on the term Semantic Web here. At first glance, it may seem that the topics Semantic Web and semantic HTML code are almost the same thing. But in fact, the Semantic Web is a rather philosophical concept and does not have much in common with current reality.

Semantic layout - what is it?

In a language, every word has a specific meaning and purpose. When you say “sausage,” you mean a food product that is minced meat (usually meat) in an oblong casing. In short, you mean sausage, not milk or green peas.

HTML is also a language, its “words” called tags also have a certain logical meaning and purpose. For this reason, first of all semantic HTML code is a layout with the correct use HTML tags , using them for their intended purpose, as they were intended by the developers of the HTML language and web standards.

microformats.org is a community that works to bring the idealistic ideas of the Semantic Web to life by bringing page layout closer to those same semantic ideals.

Why and who needs semantic layout at all?

If information on my website is displayed the same way as on the design, why bother racking your brain and thinking about some kind of semantics?! Same extra work! Who needs this?! Who will appreciate this except another layout designer?

I often heard such questions. Let's figure it out.

Semantic HTML for web developers

Semantic code for users

Increases the availability of information on the site. First of all, this is important for alternative agents such as:

  • semantic code directly affects the amount of HTML code. Less code -> lighter pages -> load faster, less required random access memory on the user side, less traffic, smaller database size. The site becomes faster and less expensive.
  • voice browsers for whom tags and their attributes are important in order to pronounce the content correctly and with the right intonation, or, conversely, not to say too much.
  • mobile devices which do not fully support CSS and therefore rely mainly on HTML code, displaying it on the screen according to the tags used.
  • printing devices even without additional CSS, the information will be printed with better quality (closer to the design), and creating the ideal version for printing will turn into a few easy manipulations with CSS.
  • In addition, there are devices and plugins that allow you to quickly navigate through a document - for example, by headings in Opera.

Semantic HTML for machines

Search engines are constantly improving their search methods to ensure that the results contain the information you want. really looking for user. Semantic HTML facilitates this because... lends itself to much better analysis - the code is cleaner, the code is logical (you can clearly see where the headings are, where the navigation is, where the content is).

Good content plus high-quality semantic layout is already a serious application for good positions in search engine results.

4.1. Encryption Basics

The essence of encryption using the replacement method is as follows. Let messages in Russian be encrypted and each letter of these messages must be replaced. Then, literally A the source alphabet is compared to a certain set of symbols (cipher replacement) M A, B – M B, …, I – M I. The cipher substitutions are chosen in such a way that any two sets ( M I And M J, i ≠ j) did not contain identical elements ( M I ∩ M J = Ø).

The table shown in Fig. 4.1 is the key of the replacement cipher. Knowing it, you can perform both encryption and decryption.

AB... I
M AM B... M I

Fig.4.1. Cipher substitution table

When encrypting, each letter A open message can be replaced by any character from the set M A. If the message contains several letters A, then each of them is replaced by any character from M A. Due to this, with the help of one key it is possible to obtain different versions of the ciphergram for the same open message. Since the sets M A, M B, ..., M I do not intersect in pairs, then for each symbol of the ciphergram it is possible to unambiguously determine which set it belongs to, and, consequently, which letter of the open message it replaces. Therefore, decryption is possible and the open message is determined in a unique way.

The above description of the essence of substitution ciphers applies to all their varieties with the exception of , in which the same substitution ciphers can be used to encrypt different characters of the original alphabet (i.e. M I ∩ M J ≠ Ø, i ≠ j).

The replacement method is often implemented by many users when working on a computer. If, due to forgetfulness, you do not switch the character set on the keyboard from Latin to Cyrillic, then instead of letters of the Russian alphabet, when entering text, letters of the Latin alphabet (“cipher replacements”) will be printed.

Strictly defined alphabets are used to record original and encrypted messages. The alphabets for recording original and encrypted messages may differ. Characters of both alphabets can be represented by letters, their combinations, numbers, pictures, sounds, gestures, etc. As an example, we can cite the dancing men from the story by A. Conan Doyle () and the manuscript of the runic letter () from the novel “Journey to the Center of the Earth” by J. Verne.

Substitution ciphers can be divided into the following subclasses(varieties).

Fig.4.2. Classification of substitution ciphers

I. Regular ciphers. Cipher replacements consist of the same number of characters or are separated from each other by a separator (space, dot, dash, etc.).

Slogan code. For a given cipher, the construction of a cipher substitution table is based on a slogan (key) - an easy-to-remember word. The second line of the cipher replacement table is filled first with the slogan word (and repeated letters are discarded), and then with the remaining letters that are not included in the slogan word, in alphabetical order. For example, if the slogan word “UNCLE” is selected, then the table looks like this.

ABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUI
DIANDNABINGEYoANDZYTOLMABOUTPRWITHTUFXCHShSCHKommersantYbEYU

Fig.4.4. Table of cipher replacements for the slogan cipher

When encrypting the original message “ABRAMOV” using the above key, the ciphergram will look like “DYAPDKMI”.

Polybian square. The cipher was invented by the Greek statesman, commander and historian Polybius (203-120 BC). In relation to the Russian alphabet and Indian (Arabic) numerals, the essence of encryption was as follows. Letters are written in a 6x6 square (not necessarily in alphabetical order).


1 2 3 4 5 6
1 ABINGDE
2 YoANDZANDYTO
3 LMNABOUTPR
4 WITHTUFXC
5 HShSCHKommersantYb
6 EYUI- - -

Fig.4.5. Table of cipher substitutions for the Polybian square

The encrypted letter is replaced by the coordinates of the square (row-column) in which it is written. For example, if the original message is “ABRAMOV”, then the ciphergram is “11 12 36 11 32 34 13”. In Ancient Greece, messages were transmitted using optical telegraphy (using torches). For each letter of the message, first the number of torches corresponding to the letter's row number and then the column number were raised.

Table 4.1. Frequency of appearance of Russian letters in texts

No.LetterFrequency, %No.LetterFrequency, %
1 ABOUT10.97 18 b1.74
2 E8.45 19 G1.70
3 A8.01 20 Z1.65
4 AND7.35 21 B1.59
5 N6.70 22 H1.44
6 T6.26 23 Y1.21
7 WITH5.47 24 X0.97
8 R4.73 25 AND0.94
9 IN4.54 26 Sh0.73
10 L4.40 27 YU0.64
11 TO3.49 28 C0.48
12 M3.21 29 SCH0.36
13 D2.98 30 E0.32
14 P2.81 31 F0.26
15 U2.62 32 Kommersant0.04
16 I2.01 33 Yo0.04
17 Y1.90

There are similar tables for pairs of letters (bigrams). For example, frequently encountered bigrams are “to”, “but”, “st”, “po”, “en”, etc. Another technique for breaking ciphergrams is based on eliminating possible combinations of letters. For example, in texts (if they are written without spelling errors) you cannot find the combinations “chya”, “shchi”, “b”, etc.

To complicate the task of breaking one-to-one ciphers, even in ancient times, spaces and/or vowels were removed from the original messages before encryption. Another method that makes it difficult to open is encryption bigrams(in pairs of letters).

4.3. Polygram ciphers

Polygram substitution ciphers- these are ciphers in which one cipher substitution corresponds to several characters of the source text at once.

Bigram Cipher Ports. Porta's cipher, presented in table form, is the first known bigram cipher. The size of his table was 20 x 20 cells; the standard alphabet was written at the top horizontally and vertically at the left (it did not contain the letters J, K, U, W, X and Z). Any numbers, letters or symbols could be written in the table cells - Giovanni Porta himself used symbols - provided that the contents of none of the cells were repeated. In relation to the Russian language, the table of cipher substitutions may look like this.


ABINGDE
(Yo)
ANDZAND
(Y)
TOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUI
A001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
B032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062
IN063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093
G094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
D125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
HER)156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
AND187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
Z218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
I (Y)249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
TO280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
L311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
M342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
N373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403
ABOUT404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
P435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465
R466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496
WITH497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527
T528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558
U559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589
F590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620
X621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651
C652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682
H683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713
Sh714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744
SCH745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775
Kommersant776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806
Y807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837
b838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868
E869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899
YU900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930
I931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961

Fig.4.10. Cipher replacement table for the Ports cipher

Encryption is performed using letter pairs of the original message. The first letter of the pair indicates the cipher replacement row, the second - the column. If there is an odd number of letters in the original message, an auxiliary character (“blank character”) is added to it. For example, the original message “AB RA MO V”, encrypted - “002 466 355 093”. The letter “I” is used as an auxiliary symbol.

Playfair cipher (English: “Fair game”). In the early 1850s. Charles Wheatstone invented the so-called "rectangular cipher". Leon Playfair, a close friend of Wheatstone, spoke about this cipher during an official dinner in 1854 to the Home Secretary, Lord Palmerston, and Prince Albert. And since Playfair was well known in military and diplomatic circles, the name “Playfair cipher” was forever assigned to Wheatstone’s creation.

This cipher was the first alphabetic bigram cipher (Porta's bigram table used symbols, not letters). It was designed to ensure the secrecy of telegraph communications and was used by British troops in the Boer and First World Wars. It was also used by the Australian Islands Coast Guard during World War II.

The cipher provides encryption of pairs of symbols (digrams). Thus, this cipher is more resistant to cracking compared to a simple substitution cipher, since frequency analysis is more difficult. It can be carried out, but not for 26 possible characters (Latin alphabet), but for 26 x 26 = 676 possible bigrams. Bigram frequency analysis is possible, but is significantly more difficult and requires a much larger amount of ciphertext.

To encrypt a message, it is necessary to split it into bigrams (groups of two symbols), and if two identical symbols are found in the bigram, then a pre-agreed auxiliary symbol is added between them (in the original - X, for the Russian alphabet - I). For example, "encrypted message" becomes "encrypted message" I communication I" To form a key table, a slogan is selected and then it is filled in according to the rules of the Trisemus encryption system. For example, for the slogan “UNCLE” the key table looks like this.

DIANDNAB
INGEYoANDZ
YTOLMABOUTP
RWITHTUFX
CHShSCHKommersantY
bEYU- 1 2

Fig.4.11. Key table for the Playfair cipher

Then, guided by the following rules, the pairs of characters in the source text are encrypted:

1. If source text bigram symbols occur in one line, then these symbols are replaced by symbols located in the nearest columns to the right of the corresponding symbols. If the character is the last in a line, then it is replaced with the first character of the same line.

2. If the bigram characters of the source text occur in one column, then they are converted to the characters of the same column located directly below them. If a character is the bottom character in a column, then it is replaced by the first character of the same column.

3. If the bigram characters of the source text are in different columns and different lines, then they are replaced with characters located in the same lines, but corresponding to other corners of the rectangle.

Encryption example.

The bigram “for” forms a rectangle - it is replaced by “zhb”;

The bigram "shi" is in one column - replaced by "yu";

The bigram “fr” is in one line - replaced by “xc”;

The bigram “ov” forms a rectangle - it is replaced by “yzh”;

The bigram “an” is in one line - it is replaced by “ba”;

The bigram “but” forms a rectangle - it is replaced by “am”;

The bigram “es” forms a rectangle - it is replaced by “gt”;

The bigram “oya” forms a rectangle - it is replaced by “ka”;

The bigram “about” forms a rectangle - it is replaced by “pa”;

The bigram “shche” forms a rectangle - it is replaced by “shyo”;

The bigram “ni” forms a rectangle - is replaced by “an”;

The bigram “ee” forms a rectangle and is replaced by “gi”.

The code is “zhb yue xs yzh ba am gt ka pa she an gi.”

To decrypt, you must use the inversion of these rules, discarding the characters I(or X) if they do not make sense in the original message.

It consisted of two disks - an external fixed disk and an internal movable disk, on which the letters of the alphabet were printed. The encryption process involved finding the letter of the plaintext on external drive and replacing it with the letter from the internal disk underneath it. After this, the internal disk was shifted one position and the second letter was encrypted using the new cipher alphabet. The key to this cipher was the order of letters on the disks and the initial position of the internal disk relative to the external one.

Trisemus table. One of the ciphers invented by the German abbot Trisemus was a multi-alphabetic cipher based on the so-called “Trisemus table” - a table with sides equal to n, Where n– the number of characters in the alphabet. In the first row of the matrix the letters are written in the order of their order in the alphabet, in the second - the same sequence of letters, but with a cyclic shift by one position to the left, in the third - with a cyclic shift by two positions to the left, etc.

ABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUI
BINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIA
INGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIAB
GDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABIN
DEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABING
EYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGD
YoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDE
ANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYo
ZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoAND
ANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZ
YTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZAND
TOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDY
LMNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTO
MNABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOL
NABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLM
ABOUTPRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMN
PRWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUT
RWITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTP
WITHTUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPR
TUFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITH
UFXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHT
FXCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTU
XCHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUF
CHShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFX
HShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXC
ShSCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCH
SCHKommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHSh
KommersantYbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCH
YbEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersant
bEYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantY
EYUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYb
YUIABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbE
IABINGDEYoANDZANDYTOLMNABOUTPRWITHTUFXCHShSCHKommersantYbEYU

Fig.4.17. Trisemus Table

The first line is also an alphabet for plaintext letters. The first letter of the text is encrypted on the first line, the second letter on the second, and so on. After use last line return to the first one again. So the message “ABRAMOV” will take the form “AVTGRUZ”.

Vigenère encryption system. In 1586, the French diplomat Blaise Vigenère presented before the commission of Henry III a description of a simple but fairly strong cipher, which was based on the Trisemus table.

Before encryption, a key is selected from the alphabet characters. The encryption procedure itself is as follows. The i-th character of the open message in the first line determines the column, and the i-th character of the key in the leftmost column determines the row. At the intersection of the row and column there will be the i-th character placed in the ciphergram. If the key length is less than the message, then it is reused. For example, the original message is “ABRAMOV”, the key is “UNCLE”, the encryption code is “DAFIYOYE”.

In fairness, it should be noted that the authorship of this cipher belongs to the Italian Giovanni Battista Bellaso, who described it in 1553. History “ignored an important fact and named the cipher after Vigenère, despite the fact that he did nothing to create it.” Bellazo suggested calling a secret word or phrase password(Italian password; French parole - word).

In 1863, Friedrich Kasiski published an algorithm for attacking this cipher, although there are known cases of his cipher breaking by some experienced cryptanalysts before. In particular, in 1854 the cipher was cracked by the inventor of the first analytical computer Charles Babbage, although this fact became known only in the 20th century, when a group of scientists analyzed Babbage's calculations and personal notes. Despite this, the Vigenère cipher had a reputation for being extremely resistant to manual cracking for a long time. Thus, the famous writer and mathematician Charles Lutwidge Dodgson (Lewis Carroll), in his article “The Alphabetic Cipher,” published in a children's magazine in 1868, called the Vigenère cipher unbreakable. In 1917, the popular science magazine Scientific American also described the Vigenère cipher as unbreakable.

Rotary machines. The ideas of Alberti and Bellaso were used to create electromechanical rotary machines in the first half of the twentieth century. Some of them were used in different countries until the 1980s. Most of them used rotors (mechanical wheels), the relative position of which determined the current cipher alphabet used to perform the substitution. The most famous of the rotary machines is the German World War II Enigma machine.

The output pins of one rotor are connected to the input pins of the next rotor and when the original message symbol is pressed on the keyboard, an electrical circuit is completed, as a result of which the light bulb with the cipher replacement symbol lights up.

Fig.4.19. Enigma rotary system [www.cryptomuseum.com]

The encryption effect of the Enigma is shown for two keys pressed in succession - the current flows through the rotors, is “reflected” from the reflector, then again through the rotors.

Fig.4.20. Encryption scheme

Note. The gray lines show other possible electrical circuits within each rotor. Letter A is encrypted differently when successive key presses are made, first in G, then in C. The signal takes a different route due to the rotation of one of the rotors after pressing the previous letter of the original message.

3. Describe the types of substitution ciphers.

The semantics of HTML code is always a hot topic. Some developers try to always write semantic code. Others criticize dogmatic adherents. And some even have no idea what it is and why it is needed. Semantics are defined in HTML in tags, classes, IDs, and attributes that describe the purpose but do not specify the exact content they contain. That is, we are talking about separating content and its format.

Let's start with an obvious example.

Bad code semantics

Article title
And the author
Inko Gnito.

Good code semantics

Article title

The text of an article that was written by someone. Inko Gnito- its author.

Whether you think HTML5 is ready for use or not, the use of the

in this case it will be more attractive than usual
indicating the class. The title of the article becomes the heading, the content becomes the paragraph, and the highlighted in bold text becomes tag .

But not everything is represented so clearly by HTML5 tags. Let's look at a set of class names and see if they meet the semantic requirements.

Not semantic code. This is a classic example. Every CSS grid workbench uses these types of class names to define grid elements. Whether it's "yui-b", "grid-4", or "spanHalf" - such names are closer to specifying markup than to describing content. However, their use is unavoidable in most cases when working with modular grid templates.

Semantic code. The footer has gained a strong meaning in web design. This is the bottom part of the page, which contains elements such as repeating navigation, usage rights, author information, and so on. This class defines a group for all these elements without describing them.

If you have switched to using HTML5, then it is better to use the element

in such cases. The note also applies to all other parts of the web page (the header should be
, side panel -

Publications on the topic