Separate Styles in the Three Column Division

1

I am currently doing the Prototype of an Interface where it will have the page divided into 3 sections:

1) A side column on the left side with width:25%; where the user form will be.

2) A column in the center with width:50% where an interactive matrix will be.

3) A side column on the right side with width:25% where there will be a list of interactive questions as well.

Integrated Example

I have created three% of different% of each other by dividing in ids , <div id="left-column"> and <div id="center-column"> where respectively <div id="right-column"> is subject to different styles.

HTML

<div id="left-column">

      <h1>Receive Your Answer</h1>
    <div class="contact">
    <form method="post" enctype="multipart/form-data"  action="#" id="image-form">
      <div class="three_col">
        <select>
          <option value="title">Title</option>
          <option value="mr">MR</option>
          <option value="mrs">MRS</option>
          <option value="ms">MS</option>
          <option value="dr">DR</option>
        </select>
        <input type="text" name="fname" placeholder="First Name" class="default" msg="Error for First name">
        <span class="error"></span>
        <input type="text" name="lname" placeholder="Last Name" class="default" msg="Error for Last name">
        <span class="error"></span>
      </div>
      <div class="one_col email">
        <input type="text" name="email" placeholder="Email Address" class="default" msg="Please enter a valid email">
        <span class="error"></span>
      </div>
      <div class="one_col">
        <input id="submit" type="submit" value="Submit" />
      </div>
      <span class="clear"></span>
    </form>
  </div>

</div>

<div id="center-column">

  <div class="q-sort">
    <button ng-click="dbteste.SaveAnswer()">Teste</button>
      <div id = "teste3" ng-controller="teste3 as app"> <!--FIXME finish this -->
         <ul>
                 <li ng-repeat="answers in app.answers">
                     {{ answers.ans }}
                 </li>

             </ul>
         <button ng-click="app.SaveAnswer()">Teste</button>

      </div>
  </div>

</div>

<div id="right-column">

  <div id="page">

    <div id="workarea">
      <h1>Quetions List</h1>

      <div id="completed-questions">
        <h3>
          <em class="icon-ok icon-large"></em>Completed
        </h3>   
      </div><!-- #completed-questions -->

      <div id="questions" class="question-panels">
        <div id="question-1" class="question-panel">
          <h4 class="question-name">Questions</h4>
          <div class="toolbar">
            <a href="#" class="add-task icon icon-plus"></a>
          </div>

          <div class="text-list">
            <div id="text-1" class="text">
              <p>Pergunta 1</p>
              <div class="actions">
                <a href="#" class="icon-caret-right"></a>
                <a href="#" class="icon-ok"></a>
                <a href="#" class="icon-pencil"></a>
                <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-2" class="text">
            <p>Pergunta 2</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-3" class="text">
            <p>Pergunta 3</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-4" class="text">
            <p>Pergunta 4</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-5" class="text">
            <p>Pergunta 5</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-6" class="text">
            <p>Pergunta 6</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-7" class="text">
            <p>Pergunta 7</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

          <div id="text-8" class="text">
            <p>Pergunta 8</p>
            <div class="actions">
              <a href="#" class="icon-caret-right"></a>
              <a href="#" class="icon-ok"></a>
              <a href="#" class="icon-pencil"></a>
              <a href="#" class="icon-trash"></a>
            </div>
          </div>

        </div>

      </div><!-- #questions -->

    </div><!-- #workarea -->

  </div><!-- #page -->

</div>

CSS

@import url(http://fonts.googleapis.com/css?family=Lato);
@baseBlue: #353538;
@baseDarkRed: #00aeed;
@baseLightRed: #00aeed;

::selection
{
  color:inherit;
}
::-moz-selection
{
  color:inherit;
}
body {
    background-color: #353538;
    color: #333;
  font-family: Lato;
  -webkit-font-smoothing: antialiased;
}
[contenteditable="true"]:focus {
  outline: 1px solid black;
}
h1{
  margin: 20px;
  text-align: left;
  color: @baseDarkRed;
}

h2{
  text-align: right;
  line-height: 1;
  margin: 0 0 10px 0;
  padding: 0;
}
h3{
  line-height: 1.5;
  margin: auto;
  padding: 0;
  color: @baseLightRed;
}
h4 {
  line-height: 1;
  margin: 0;
  padding: 0;
  text-align: left;
  color: @baseLightRed;
}
a {
  color: darken(@baseLightRed, 10%);
  transition: all 0.3s ease-in-out;
}
a:hover {
  color: darken(@baseLightRed, 20%);
  text-shadow: 0px 0px 12px @baseLightRed;
}
#left-column {
  width:25%;
  float:left;
  display:inline-block;
}
#center-column {
  width:50%;
  float:center;
  display:inline-block;
}
#right-column {
  width:25%;
  float:right;
  display:inline-block;
}

/* ========================= */

/*
 *  FORM
 */

.left-column *{
  color:#333;
  padding:0px;
  margin:0px;
  border:0;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.contact{
    position:relative;
    width:60%;
    max-width:700px;
    margin:0 auto 0%;
    padding:10px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    -o-border-radius: 5px;
    -ms-border-radius: 5px;
    border-radius: 5px; 
    background:rgba(51,51,51,0.05);
}

.three_col , .one_col{
    float:left;
    width:100%;
    position:relative;
}

.three_col input, .one_col input, .three_col select, .one_col textarea, .one_col  #file {
    position:relative;
    padding:5px 5px;
    margin:1% 2%;
    float:left;
    z-index:10;
    border:1px solid #ccc;
    background:url(http://www.olliehusbanddesign.co.uk/form/images/tick.jpg) 120% 0 no-repeat #fff;
}

.three_col span.error, .one_col span.error{
    background: none repeat scroll 0 0 rgba(0, 0, 0, 0.6);
    border-radius: 5px 5px 5px 5px;
    color: #FFFFFF;
    display: block;
    font-size: 10px;
    height: 35px;
    left: 0;
    padding: 10px 15px;
    position: absolute;
    top: -33px;
    left:25%;
    width: auto;
    z-index:999999999;
    display:none;
}

.three_col span.error:nth-child(5){
    left:65%;
}

.three_col span.error:after, .one_col span.error:after{
    background: url("http://www.olliehusbanddesign.co.uk/form/images/popup_arrow.png") repeat scroll 0 0 transparent;
    bottom: -7px;
    content: "";
    height: 7px;
    left: 47%;
    position: absolute;
    width: 17px;
}   
.three_col select{
    width:16%;
    background:#fff;
    padding:4px;
}
.three_col input{
    width:36%;
}   

.one_col input, .one_col textarea, .one_col  #file {
    width:96%;
}

.one_col  #file {
  background: url("http://www.olliehusbanddesign.co.uk/form/images/Camera_icon.png") no-repeat scroll center 35px transparent;
    border: 1px dotted #CCCCCC;
    cursor: pointer;
    display: none;
    float: right;
    position: relative;
    text-align: center;
    width: 96%; 
}

.one_col  #file p{
padding: 95px 0 0;
line-height: 40px;
}

.one_col #image-list li{
    list-style:none;    
    border:1px solid #ccc;  
    margin: 2%;
    background:#fff;
}

.one_col #image-list li img{
    width:98%;
    height:98%;
    margin: 1% !important;
}

.one_col #submit{
    border-top-color: #4d4d4d;
   background: #eaeaea;
   color: lighten(#333, 30%);
   cursor:pointer;
}

.one_col #submit:hover{
    background: #808080;
   color: #d6d6d6;
}   

.clear{
    clear:both;
    content:"";
    line-height:0px;
    display: block;
}

/* old browser fixed */

.no-rgba .contact,  .no-rgba .three_col span.error,  .no-rgba .one_col span.error{
    background:url(http://www.olliehusbanddesign.co.uk/form/images/norgba_bg.png) !important;
}

.no-canvas .one_col, .no-canvas .three_col, .no-canvas .one_col input, .no-canvas .three_col input{
    float:right !important; 
    margin-right:0;
    margin-bottom:0;
}

.no-canvas .three_col input{
    width:34% !important;
    margin-right:0;
    margin-bottom:0;
    float:right;
}


.no-canvas .file-upload  div{
    display:block !important;
    height:auto !important;
    width: 45% !important;
    float:right;
}

.no-canvas .one_col  #file{
    display:none !important;
}

/* animations */


@-moz-keyframes default-to-error {
    0%{
        background-position:120% -28px;
    }
    50%{
        background-position:right -28px;
    }
}

@-moz-keyframes default-to-success {
   0%{
        background-position:120% 0px;
    }
    50%{
        background-position:right 0px;
    }
}

@-moz-keyframes error-to-success {
    0%{
        background-position:right -28px;
    } 
    50%{
        background-position:120% -28px;
    } 
    60%{
        background-position:120% 0px;
    }
    100%{
        background-position:right 0px;
    }
}

@-moz-keyframes success-to-error {
    0%{
        background-position:right 0px;
    } 
    50%{
        background-position:120% 0px;
    } 
    60%{
        background-position:120% -28px;
    }
    100%{
        background-position:right -28px;
    }
}
@-webkit-keyframes default-to-error {
    0%{
        background-position:120% -28px;
    }
    50%{
        background-position:right -28px;
    }
}

@-webkit-keyframes default-to-success {
   0%{
        background-position:120% 0px;
    }
    50%{
        background-position:right 0px;
    }
}

@-webkit-keyframes error-to-success {
    0%{
        background-position:right -28px;
    } 
    50%{
        background-position:120% -28px;
    } 
    60%{
        background-position:120% 0px;
    }
    100%{
        background-position:right 0px;
    }
}

@-webkit-keyframes success-to-error {
    0%{
        background-position:right 0px;
    } 
    50%{
        background-position:120% 0px;
    } 
    60%{
        background-position:120% -28px;
    }
    100%{
        background-position:right -28px;
    }
}


input.default-to-error{
    -webkit-animation: default-to-error 0.5s;
    -moz-animation: default-to-error 0.5s;
    -animation: default-to-error 0.5s;
      background-position:right -28px;    
      -webkit-box-shadow:0 0 7px rgba(243,38,36, 0.6); 
    -moz-box-shadow: 0 0 7px rgba(243,38,36, 0.6); 
    box-shadow:0 0 7px rgba(243,38,36, 0.6); 
}

input.default-to-success{
    -webkit-animation: default-to-success 0.5s;
    -moz-animation: default-to-success 0.5s;
    -animation: default-to-success 0.5s;
      background-position:right 0px;        
    -webkit-box-shadow:0 0 7px rgba(161,199,54, 0.6); 
    -moz-box-shadow: 0 0 7px rgba(161,199,54, 0.6); 
    box-shadow:0 0 7px rgba(161,199,54, 0.6); 
}


@media handheld, only screen and (max-width: 580px) {

    .contact{
        width:90%;
    }

    .one_col  #file{
        width:96%;
    }

    .three_col input, .one_col input, .three_col select, .one_col textarea{
        width:96%;
        margin:2% 2%;
    }

    .three_col input, .one_col input{
        padding-right: 21px;
    }   

    .three_col span.error, .one_col span.error{
        display:none !Important;
    }
}

/*
 *  END FORM
 */

/* ========================= */

/*
 *  Q-SORT
 */

/*
 *  END Q-SORT
 */

/* ========================= */

/*
 *  DG-QUESTIONS
 */

#page {
    width: 500px;
    margin: 0px auto;
}
#questions{
  float: left;
  margin: 0 0 0 20px;
}
#questions h3 {
  text-align: right;
}
#completed-questions{
  float: left;
  width: auto;
  padding: 0px;
  overflow-x: hidden;
  white-space: nowrap;
}
#completed-questions.open {
  width: auto;
}
#completed-questions .actions{
  display: none;
}
#completed-questions .text{
  border-width: 0px 0px 1px 0px;
}
#completed-questions .text p{
  text-decoration: line-through;
}
.question-panel {
    display: inline-block;
  padding: 8px;
    width: 250px;
  vertical-align: top;
    background-color: #fff;
    border-radius: 3px;
}
.question-name.over ~ .text-list {
  border: 3px dashed #dadada;
}
.toolbar {
  text-align: right;
  line-height: 30px;
  padding: 0px 6px;
  display: none;
}
.toolbar a {

}
.text-list {
  position: relative;
  margin: 4px 0px 0px 0px;
}
.text{
  position: relative;
    background-color: #eaeaea;
    text-align: left;
  padding: 0px 0px 0px 4px;
  margin: 0px 0px 1px 0px;
  border: 1px solid #dadada;
  border-width: 1px 1px 0px 1px;
}
.text:first-child{

}
.text:last-child{
  border-width: 1px;

}
.text > p {
  color: lighten(#333, 30%);
  margin: 0;
  padding: 0;
  line-height: 30px;
  display: inline-block;
  width: 90%;
  vertical-align: top;
}
.actions {
  position: absolute;
  display: inline-block;
  padding: 0px;
  margin: 0px -200px 0 0;
  width: 19px;
  height: 22px;
  z-index: 10;
  overflow: hidden;
  background-color: #fff;
  opacity: 0.5;
  transition: all 0.75s ease-in-out;
}
.actions:hover{
  width: 150px;
  opacity: 1;
}
.actions a {
  padding: 0px 10px;
}
.actions a.icon-caret-right {

}
.text.over {
  border-top: 3px dashed #dadada;
}

/*
 *  END DG-QUESTIONS
 */

JavaScript

;(function ( $, window, undefined ) {
  var pluginName = 'dragDrop',
      document = window.document,
      defaults = {
          draggableSelector: ".draggable",
          droppableSelector: ".droppable",
          appendToSelector: false
      };


  function Plugin( element, options ) {
      this.element = element;
      this.options = $.extend( {}, defaults, options) ;

      this._defaults = defaults;
      this._name = pluginName;

      this.init();
  }

  Plugin.prototype.init = function () {
      var droppables = $(this.element).find(this.options.droppableSelector);
      var draggables = $(this.element).find(this.options.draggableSelector).attr("draggable", "true");

    if(this.options.appendToSelector){
      var appendables = $(this.options.appendToSelector);

      appendables.on({
        'dragenter': function(ev){
          ev.preventDefault();
          return true;
        },
        'drop': function(ev){
          var data = ev.originalEvent.dataTransfer.getData("Text");
          var draggedEl = document.getElementById(data);
          var destinationEl = $(ev.target);

          destinationEl = destinationEl.closest(appendables.selector).siblings(droppables.selector).append(draggedEl);
          $('.active').removeClass('active');
          $('.over').removeClass('over');
          ev.stopPropagation();
          return false;
        },
        'dragover': function(ev){
          ev.preventDefault();
          $(ev.target).closest(appendables.selector).addClass('over');
          return true;
        },
        'dragleave': function(ev){
          ev.preventDefault();
          $(ev.target).closest(appendables.selector).removeClass('over');
          return true;
        }
      });
    }

    droppables.on({
      'mouseup': function(ev){
        $('.active').removeClass('active');
        return true;
      },
      'dragenter': function(ev){
        ev.preventDefault();
        return true;
      },
      'drop': function(ev){
        var data = ev.originalEvent.dataTransfer.getData("Text");
        var draggedEl = document.getElementById(data);
        var destinationEl = $(ev.target);

        destinationEl.closest(draggables.selector).before(draggedEl);
        $('.active').removeClass('active');
        $('.over').removeClass('over');
        ev.stopPropagation();
        return false;
      },
      'dragover': function(ev){
        ev.preventDefault();
        $(ev.target).closest(draggables.selector).addClass('over');
        return true;
      },
      'dragleave': function(ev){
        ev.preventDefault();
        $(ev.target).closest(draggables.selector).removeClass('over');
        return true;
      }
    });


    draggables.on({
      'mousedown': function(ev){
        $(ev.target).closest(draggables.selector).addClass('active');
        return true;
      },
      'mouseup': function(ev){
        $('.active').removeClass('active');
        return true;
      },
      'dragstart': function(ev){
        ev.originalEvent.dataTransfer.effectAllowed='move';
        ev.originalEvent.dataTransfer.setData("Text", ev.target.getAttribute('id'));
        ev.originalEvent.dataTransfer.setDragImage(ev.target,100,20);
        return true;
      },
      'dragend': function(ev){
        return true;
      }
    });

  };

  // A really lightweight plugin wrapper around the constructor, 
  // preventing against multiple instantiations
  $.fn[pluginName] = function ( options ) {
    return this.each(function () {
      if (!$.data(this, 'plugin_' + pluginName)) {
        $.data(this, 'plugin_' + pluginName, new Plugin( this, options ));
      }
    });
  }

}(jQuery, window));

$(document).ready(function(){
  $("#questions").dragDrop({
          draggableSelector: ".text",
          droppableSelector: ".text-list",
      appendToSelector: ".question-name"
    });
  $("a.icon-trash").on("click", function(){
    $(this).closest(".text").remove();
  });
  $("a.icon-ok").on("click", function(){
    $(this).closest(".text").appendTo("#completed-questions");
    $("#completed-questions").addClass('open');
  });
  $("a.icon-pencil").on("click", function(){
    var text = $(this).closest(".text");
    text.attr("draggable", "false");
    text.find("p").attr("contenteditable", "true").on({
        "keypress": function(ev){
          if(ev.keyCode == 13)
          {
            ev.preventDefault();
            $(this).attr("contenteditable", "false");
            text.attr("draggable", "true");
          }
        },
        "focusout": function(ev){
          $(this).attr("contenteditable", "false");
            text.attr("draggable", "true");
        }
    }).focus();
  });
});

In Embedded Example both the User Sending Form sample are integrated, a second which is not complete and the example Drag and Drop Questions List , but it turns out that the first one is not aligned as such you can check the Partial Example , where it is well aligned.

Partial Example

In the Partial Example , as you can see, the table behaves in an aligned way, however so I integrate the same in the Integrated Example this gets misaligned.

This happens because, in this case, I'm using a different style hierarchy because I'm defining:

*{
     color:#333;
     padding:0px;
     margin:0px;
     border:0;
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box; box-sizing: border-box;
 }

What I can not do the same in Integrated Example because I would define all styles (aka <div> ) and it's something I do not want.

My question is:

How can I solve this problem?

That is, I want to have the style:

*{
     color:#333;
     padding:0px;
     margin:0px;
     border:0;
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box; box-sizing: border-box;
 }

But only for my * with all tables aligned.

    
asked by anonymous 18.08.2015 / 13:57

1 answer

1

Have you tried using this?

.left-column {
     color:#333;
     padding:0px;
     margin:0px;
     border:0;
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box; box-sizing: border-box;
}

If you have more elements within this div you want to achieve, put them in front ...

.left-column, div, table, tr, td, a, img {
     color:#333;
     padding:0px;
     margin:0px;
     border:0;
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box; box-sizing: border-box;
 }

I do not recommend using * in any case. Try to use a CSS reset.

Hug.

    
16.04.2016 / 16:31