Jump to content
  • Sign Up
envoleon

Интересное задание от работодателя

Recommended Posts

Всем привет. Примерно год назад, я пытался устроиться в одну компанию( не помню название). В общем там дали 3 тестовых задания для рассмотрения знаний. Первый был связан с html и css. Остальные два с javascript и mysql. На все про все давалось пол дня. По первому впечатлению первый оказался самым легким, но не тут то было (из-за чего я и провалил тест), о нем и пойдет речь в этой теме, так как с остальными я управился за час.

После провала, я решил не сдаваться и попробовать добить это первое задание. Бился на нем днями. Так его и не решил. Так его и не решили мои знакомые друзья (которые имеют хороший опыт в верстке). Я не знаю в чем подвох, может вы мне подскажите?

 

Вот само задание

Цитата

Имеется HTML разметка:


<style>
    .columns {width: 100%; overflow: hidden;}
    .sidebar-left {width: 300px;}
    .sidebar-right {width: 300px;}
</style>
<div class="columns">
    <div class="content"></div>
    <div class="sidebar-left"></div>
    <div class="sidebar-right"></div>
</div>


Допишите необходимые стили, чтобы на экране блоки отображались в следующем порядке:  sidebar-left,  content,  sidebar-right. При необходимости в разметку можно добавить один блок div. Использование bootstrap, flexbox, javascript и css функции calc запрещено.
Боковые столбцы фиксированные, центральная занимает оставшееся пространство. Высота колонок должна формируется в зависимости от их содержимого, а не от явного ее указания в css.
Запрещается менять местами div контейнеры в html разметке.  Ни одна из колонок не должна перекрывать содержимое, которое может идти сразу под колонками.
 

Может кто из вас сможет его решить, потому что я уже перепробовал очееень много разных способов? Может даже создатель этого задания сидит тут.

В заранее, прежде чем думать, что вы решили его за 5 минут с лета, внимательно прочитайте все условия (Тут не все так просто и вправду нужно подумать)

Никакие советы не принимаются. только готовое решение, которое вы сами уже протестировали. Буду проверять, укажу на ошибки, если будут.

Время для выполнения не ограничено, это чисто на интерес каждого, проверить свои способности.

Share this post


Link to post
Share on other sites

Здравствуйте.

Это действительно простая задача, на решение которой требуется не более 5 минут.

Дело в том, что такое решение не актуально много лет, с тех пор как "float" был вытеснен боле современными инструментами. А вот 10-15 лет назад такое можно было увидеть достаточно часто.

Я бы удивился увидев такое тестовое задание последние лет 7 так точно. Самое задание устарело как и его решение.

По моему мнению сейчас давать такое задание — равносильно что кичится.

Share this post


Link to post
Share on other sites

 

5 часов назад, klierik сказал:

Я бы удивился увидев такое тестовое задание последние лет 7 так точно. Самое задание устарело как и его решение.

По моему мнению сейчас давать такое задание — равносильно что кичится.

У работодателя видно были свои (как и его борода) взгляды на все это.
Решение засчитывается, но с требованием "за 5 минут" я бы поспорил, как минимум из-за margin-right -100%. Я не знаю, что нужно пережить, зная такую хитрость).
Значит пункт с добавлением еще одного div был выходом. Я старался его избежать из-за слов "при необходимости". Не знаю возможно ли его вообще выполнить.

У меня было одно решение (с таблицами), но слабое, так как каждая колонка тянет за собой вертикальный размер:

<html>
	<head>
		<style type="text/css">
			body
			{
				margin: 0px;
			}
			.columns
			{
				display:inline-table;
				table-layout: fixed;
				width: 100%;
				background: #FCE600;
				overflow:hidden;
				position: relative;
			}
			.sidebar-right
			{
				display:table-cell;
				position:relative;
				width: 300px;
				background: #0000ff;
			}
			.sidebar-left
			{
				display:table-cell;
				position:relative;
				right:100%;
				transform: translateX(200%);
				width: 300px;
				background: #ff0000;
			}
			.content
			{
				display:table-cell;
				position:relative;
				right:-300px;
				background: #54B948;
				word-wrap:break-word;
			}
		</style>
	</head>
	<body>
		<div class="columns">
			<div class="content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque eius odio eveniet suscipit quidem, vero commodi maiores explicabo ab labore modi? Nostrum veritatis ducimus corporis voluptatibus magni nobis velit veniam.</div>
			<div class="sidebar-left">Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque eius odio eveniet suscipit quidem, vero commodi maiores explicabo ab labore modi? Nostrum veritatis ducimus corporis voluptatibus magni nobis velit veniam.</div>
			<div class="sidebar-right">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Rem deserunt odit illum accusantium esse quo inventore molestias natus quasi quidem tempora, alias ullam expedita minus eius, aspernatur aperiam dolorem nostrum.
			Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque eius odio eveniet suscipit quidem, vero commodi maiores explicabo ab labore modi? Nostrum veritatis ducimus corporis voluptatibus magni nobis velit veniam.</div>
		</div>
	</body>
</html>


 

Share this post


Link to post
Share on other sites
1 час назад, envoleon сказал:

Решение засчитывается, но с требованием "за 5 минут" я бы поспорил, как минимум из-за margin-right -100%. Я не знаю, что нужно пережить, зная такую хитрость).

Нужно уметь верстать под IE6 😉

Share this post


Link to post
Share on other sites
10.11.2019 в 03:09, envoleon сказал:

из-за margin-right -100%. Я не знаю, что нужно пережить, зная такую хитрость).

Нужно просто знать как работают отрицательные маржины 🙂

У меня решение заняло чуть больше времени. Но я искал решение без использования дополнительного div. Единственный минус - не работает в IE6, но ведь в условии про него ничего и не сказано, верно? 🙂 Если бы до меня это сразу дошло, решил бы быстрее, а так где -то минут за 40 управился. Причем я не сказал бы что я хорошо разбираюсь в верстке 🙂

.columns {
  width: 100%;
  overflow: hidden; 
}

.sidebar-left {
  width: 300px;
  float: left;
}

.sidebar-right {
  width: 300px;
  float: right;
}

.content{
  width: 100%;
  float: left;
  box-sizing: border-box;
  padding-left: 300px;
  padding-right: 300px;
  margin-right: -100%;
}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Progrmergr
      <button class="but" onclick="tap">Пельмени</button> Как я могу в JS получить слово "Пельмени"?
    • By shumz
      Задача: Создать линию определённых размеров и расположить её по центру экрана.
      Код HTML: 
      <div class="line"></div>
      Код CSS:
      .line {
          position:absolute
          margin-top:650px;
          height:2px;
          width:1200px;
          background: black;
      }
  • Member Statistics

    46,837
    Total Members
    1,451
    Most Online
    HARDSOFT
    Newest Member
    HARDSOFT
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Спрашивают сейчас

  • Пишут сейчас

    • Ясно, спс. Теперь буду привыкать к такому поведению, хотя на мой взгляд такое поведение пригодится только тем кто случайно нажимает на эту кнопку и соглашается пометить форум прочитанным
    • Как оказалось это обновление CMS, в результате которого именно так ведёт себя эта фича. Вот что сказал саппорт:  
    • Сколько стоит организовать удалённую работу для компании Друзья, если вы готовы перенести работу компании в облако и хотите знать, сколько это стоит, провайдер облачных решений Tucha приводит конкретные расчёты, а кроме того рассказывает: ·       что влияет на стоимость выноса рабочих мест команды в облако; ·       кто и с какими данными может легко работать удалённо; ·       как просто организовать миграцию. А ещё партнёр предлагает выгодные условия на развёртывание удалённого офиса! При заказе акционного сервиса до 14 июля 2020 года включительно получите скидку 200 грн на оплату первого счёта и 1 месяц пользования сервисом TuchaBackup в подарок (в объёме диска заказанного сервиса). Чтобы воспользоваться предложением, обязательно укажите специальный промокод — TD-210-0. Для заказа звоните +380 44 583-5-583 или пишите на sales@tucha.ua. Подробно о решении и условия акционного предложения: https://bit.ly/2BucJaR  Удалённый офис — это стабильная работа всей команды отовсюду и надёжное размещение важных данных. Позаботьтесь о своём бизнесе вместе с Tucha!  
  • Popular Contributors

×
×
  • Create New...