tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

scrollbars-ref.html (3619B)


      1 <!DOCTYPE html>
      2 <head>
      3 
      4 <script src="support/scrollbars.js"></script>
      5 
      6 <style>
      7 .horizontal-header {
      8  width: 120px;
      9 }
     10 .vertical-header {
     11  width: 60px;
     12 }
     13 .container-row {
     14  display: flex;
     15  flex-direction: row;
     16  align-items: flex-start;
     17  justify-content: flex-start;
     18 }
     19 .container {
     20  flex: none;
     21  margin: 5px;
     22 }
     23 .ltr {
     24  direction: ltr;
     25 }
     26 .rtl {
     27  direction: rtl;
     28 }
     29 .horizontal {
     30  writing-mode: horizontal-tb;
     31 }
     32 .flipped-blocks {
     33  writing-mode: vertical-rl;
     34 }
     35 .flipped-lines {
     36  writing-mode: vertical-lr;
     37 }
     38 .flex {
     39  border: 2px solid red;
     40  overflow: scroll;
     41  max-width: 100px;
     42  max-height: 100px;
     43  white-space: nowrap;
     44 }
     45 .row > div, .row-reverse > div {
     46  display: inline-flex;
     47  margin: 3px;
     48 }
     49 .column > div, .column-reverse > div {
     50  display: flex;
     51  margin: 3px;
     52 }
     53 
     54 /* Adjust margins to account for collapsing. */
     55 .horizontal > .column > .leaf1, .horizontal > .column > .leaf2 {
     56  margin: 3px 3px 6px 3px;
     57 }
     58 .flipped-blocks > .column > .leaf1, .flipped-blocks > .column > .leaf2 {
     59  margin: 3px 3px 3px 6px;
     60 }
     61 .flipped-lines > .column > .leaf1, .flipped-lines > .column > .leaf2 {
     62  margin: 3px 6px 3px 3px;
     63 }
     64 
     65 .horizontal > .column-reverse > .leaf1, .horizontal > .column-reverse > .leaf2 {
     66  margin: 6px 3px 3px 3px;
     67 }
     68 .flipped-blocks > .column-reverse > .leaf1, .flipped-blocks > .column-reverse > .leaf2 {
     69  margin: 3px 6px 3px 3px;
     70 }
     71 .flipped-lines > .column-reverse > .leaf1, .flipped-lines > .column-reverse > .leaf2 {
     72  margin: 3px 3px 3px 6px;
     73 }
     74 
     75 .flex > div {
     76  width: 30px;
     77  height: 30px;
     78  border: 2px solid blue;
     79  flex-direction: column;
     80  justify-content: center;
     81 }
     82 .flex > div > div {
     83  font-size: 20px;
     84  text-align: center;
     85  flex: none;
     86 }
     87 </style>
     88 
     89 </head>
     90 
     91 <div class="container-row">
     92  <div class="vertical-header ltr horizontal"></div>
     93  <div class="horizontal-header ltr horizontal">ltr<br>horizontal-tb</div>
     94  <div class="vertical-header ltr flipped-blocks">ltr<br>vertical-rl</div>
     95  <div class="vertical-header ltr flipped-blocks">ltr<br>vertical-lr</div>
     96  <div class="horizontal-header rtl horizontal">rtl<br>horizontal-tb</div>
     97  <div class="vertical-header rtl flipped-blocks">rtl<br>vertical-rl</div>
     98  <div class="vertical-header rtl flipped-blocks">rtl<br>vertical-lr</div>
     99 </div>
    100 
    101 <script>
    102 // Override createContentNode to emulate reverse flow direction.
    103 createContentNode = (flexDirection, textDirection, writingMode) => {
    104  var flexNode = document.createElement("div");
    105  flexNode.className = "flex " + flexDirection;
    106  flexNode.title = "flex-direction: " + flexDirection + "; direction: " + textDirection + "; writing-mode: " + writingMode;
    107  for (var i = 1; i < 4; i++)
    108    flexNode.appendChild(createLeafNode(flexDirection.endsWith("reverse") ? 4 - i : i));
    109  return flexNode;
    110 }
    111 
    112 flexDirections.forEach((flexDirection) => {
    113  var containerRow = createContainerRow(flexDirection);
    114  document.body.appendChild(containerRow);
    115 });
    116 
    117 // Scroll all flex containers to the emulated beginning of flow.
    118 var nodes = document.querySelectorAll(".ltr > .row-reverse");
    119 for (var i = 0; i < nodes.length; i++) {
    120  nodes[i].scrollLeft = 10000;
    121  nodes[i].scrollTop = 10000;
    122 }
    123 nodes = document.querySelectorAll(".rtl > .row-reverse");
    124 for (var i = 0; i < nodes.length; i++) {
    125  nodes[i].scrollLeft = -10000;
    126  nodes[i].scrollTop = -10000;
    127 }
    128 nodes = document.querySelectorAll(".column-reverse");
    129 for (var i = 0; i < nodes.length; i++) {
    130  nodes[i].scrollLeft = 10000;
    131  nodes[i].scrollTop = 10000;
    132 }
    133 nodes = document.querySelectorAll(".flipped-blocks > .column-reverse");
    134 for (var i = 0; i < nodes.length; i++) {
    135  nodes[i].scrollLeft = -10000;
    136  nodes[i].scrollTop = 0;
    137 }
    138 </script>