<div class="controls">
<select id="writingMode">
  <option value="horizontal-tb">horizontal-tb</option>
  <option value="vertical-lr">vertical-lr</option>
  <option value="vertical-rl">vertical-rl</option>
</select>
</div>

<div id="container">
<div class="box logical">
  <div class="abspos"></div>
</div>
<div class="box physical">
  <div class="abspos"></div>
</div>
</div>
* { box-sizing: border-box; }

html {
  font: 1.2em Helvetica, sans-serif;
}

body {
  padding: 40px;
  background-color: #fff;
  color: rgb(108,91,123);
}

.controls {
  background-color: rgba(0,0,0,.1);
  padding: 10px;
  border-radius: .5em;
  border: 1px solid rgba(0,0,0,.2);
  margin: 0 0 2em 0
}

.controls select {
  font-size: .9em;
}

#container {
  writing-mode: horizontal-tb;
}


.box {
  border: 5px solid rgb(108,91,123);
  border-radius: 5px;
  padding: 10px;
  margin: 10px;
  height: 100px;
  width: 100px;
  position: relative;
}

.abspos {
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: rebeccapurple;
}

.logical{
    border-color: red;
  
   .abspos {
      offset-block-start: 50px;
      offset-inline-end: 20px;
      background: red;
    }
}
.physical .abspos {
  top: 50px;
  right: 20px;
}
var writingMode = document.getElementById("writingMode");
writingMode.addEventListener("change", function (evt) {
  document.getElementById("container").style.writingMode = evt.target.value;
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.