 
			
				30.09.2015, 14:14
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.02.2012 
					
					
					
						Сообщений: 196
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 ОТПАД!!!! Спасибо огромное! Правда я так и не понял суть этой хитрости. Каким образом overflow в одном месте и отсутствие онного в другом позволяет добиться этого эффекта? Можете пояснить?) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.09.2015, 14:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.02.2012 
					
					
					
						Сообщений: 196
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		overflow формирует новый контекст. Далее цитата: 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	| 
		Элементы из разных блочных контекстов форматирования никак не могут повлиять на положение друг друга на странице.
	 | 
 
	
 
 То есть по сути элементы не должны видеть друг друга, т.е. вести себя как при position:absolute; 
В чем я ошибаюсь? (а я ошибаюсь, это очевидно)  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.09.2015, 14:18
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.02.2012 
					
					
					
						Сообщений: 196
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Ещё крайне интересно то, что блоки растягиваются на 100% хотя этого свойства мы не указывали, и ели его указать, то весь эффект исчезнет и блоки сместятся вниз. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.09.2015, 18:02
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.12.2013 
					
					
					
						Сообщений: 16
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Siend
			 
		
	 | 
 
	
		То есть по сути элементы не должны видеть друг друга, т.е. вести себя как при position:absolute; 
В чем я ошибаюсь? (а я ошибаюсь, это очевидно)
	 | 
 
	
 
 
Тут речь идёт об элементах внутри контекста, т.е. внутри каждого из блока с одим из свойств, создающих контекст. 
Может быть, спецификация прояснит лучше.
 http://www.w3.org/TR/CSS21/visuren.h...ock-formatting
Вольный перевод:
 
	
 
	| 
		
			Сообщение от w3c spec
			
		
	 | 
 
	
		9.4.1 Блочные контексты форматирования. 
 
Плавающие блоки, абсолютно позиционированные элементы, блочные контейнеры (такие, как inline-block, table-cells и table-captions) не являющиеся блочными элементами, и блочные элементы с 'overflow' отличным от 'visible' (за исключением случаев, когда значение наследуется от viewport) устанавливают новые блочные контексты для их содержимого. 
 
В блочном контексте форматирования блоки располагаются вертикально один за другим от верха родительского блока. Вертикальное расстояние между двумя соседними блоками определяется свойствами 'margin'. Вертикальные отступы между соседними блоками объединяются. 
 
В блочном контексте форматирования каждый левый край блока касается левого края родительского блока (для выравнивания справа налево касается правым). Это верно даже в присутствии плавающего блока (при этом строчные элементы могут обтекать плавающий блок), если только блок не устанавливает новый контекст (в этом случае сам блок может обтекать плавающий блок).
	 | 
 
	
 
 
Что и подтверждается практикой. Блочный элемент занимает всю доступную ширину с учётом плавающих блоков. 
Если установить ширину 100%, то блочный элемент физически не может обтекать и смещается ниже. Ведь он принимает ширину родителя и просто не помещается.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось mikhail.golovkin, 01.10.2015 в 18:36.
				Причина: неточности в формулировках, сбивающие с толку
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.10.2015, 08:23
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		mikhail.golovkin, столько теории... Тестовый пример от тебя будет? А то прям заинтриговал.    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.10.2015, 09:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.01.2015 
					
					
					
						Сообщений: 622
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.10.2015, 09:15
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Теперь понял как та фигня работает.    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.10.2015, 09:20
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от EmperioAf
			
		
	 | 
 
	| 
		этот overflow:auto каким то магическим способом, но работает
	 | 
 
	
 
 Второй раз меня удивляет этот overflow.    
Сколько скрытого подтекста за сухими определениями его значений
 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	
		hidden - Отображается только область внутри элемента, остальное будет скрыто. 
auto - Полосы прокрутки добавляются только при необходимости.
	 | 
 
	
 
 http://htmlbook.ru/css/overflow 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.10.2015, 09:58
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.02.2012 
					
					
					
						Сообщений: 196
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		mikhail.golovkin, а подскажите пожалуйста, в такой ситуации:
 
.block1{
overflow:auto;
}
.block2{
overflow:auto;
}
.block3{
overflow:auto;
}
Эти три блока будут обладать каждый собственным контекстом, или у всех он будет один? Т.е. разный контекст задать можно исключительно разными свойствами (например одному блоку float, а другому overflow) или даже одно свойство будет автоматически создавать новый контекст. Или перефразирую: Будет ли контекст блоков с одинаковыми свойствами объединяться? 
 
P.S.: звучит наверное отвратительно, но по другому мысль сформулировать не смог(  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				01.10.2015, 10:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Siend
			
		
	 | 
 
	| 
		Эти три блока будут обладать каждый собственным контекстом, или у всех он будет один?
	 | 
 
	
 
 Разный у всех. 
Ведь
 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	
		Блочный контекст форматирования может быть создан посредством: 
- корневого элемента или чего-то, что содержит его 
- поплавками (элементы, у которых float не равно none) 
- абсолютно позиционированными элементами (элементами, значение  position которых либо absolute, либо fixed) 
- inline-blocks (элементы с display: inline-block) 
- ячейки таблицы (элементы с display: table-cell, установленного по умолчанию для ячеек таблицы) 
- заголовки таблицы (элементы с display: table-caption, установленного по умолчанию для ячеек таблицы) 
- элементы, у которых значение свойства overflow отличается от visible 
- flex блоки(элементы с display: flex или inline-flex)
	 | 
 
	
 
 https://developer.mozilla.org/ru/doc...atting_context
Т.е. если ты у элемента указал хоть одно из 8-ми - значит создал "Блочный контекст"...
 
Элементы конечно могут быть и вложенными друг в друга... Но в каждом будет создан новый "Блочный контекст".  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |