handsontable.css 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764
  1. .handsontable {
  2. position: relative;
  3. }
  4. .handsontable .hide{
  5. display: none;
  6. }
  7. .handsontable .relative {
  8. position: relative;
  9. }
  10. .handsontable.htAutoSize {
  11. visibility: hidden;
  12. left: -99000px;
  13. position: absolute;
  14. top: -99000px;
  15. }
  16. .handsontable .wtHider {
  17. width: 0;
  18. height: auto!important;
  19. }
  20. .handsontable .wtSpreader {
  21. position: relative;
  22. width: 0; /*must be 0, otherwise blank space appears in scroll demo after scrolling max to the right */
  23. height: auto;
  24. }
  25. .handsontable table,
  26. .handsontable tbody,
  27. .handsontable thead,
  28. .handsontable td,
  29. .handsontable th,
  30. .handsontable input,
  31. .handsontable textarea,
  32. .handsontable div {
  33. box-sizing: content-box;
  34. -webkit-box-sizing: content-box;
  35. -moz-box-sizing: content-box;
  36. }
  37. .handsontable input,
  38. .handsontable textarea {
  39. min-height: initial;
  40. }
  41. .handsontable table.htCore {
  42. border-collapse: separate;
  43. /* it must be separate, otherwise there are offset miscalculations in WebKit: http://stackoverflow.com/questions/2655987/border-collapse-differences-in-ff-and-webkit */
  44. /* this actually only changes appearance of user selection - does not make text unselectable */
  45. /* -webkit-user-select: none;
  46. -khtml-user-select: none;
  47. -moz-user-select: none;
  48. -o-user-select: none;
  49. -ms-user-select: none;
  50. user-select: none; */ /* no browser supports unprefixed version */
  51. border-spacing: 0;
  52. margin: 0;
  53. border-width: 0;
  54. table-layout: fixed;
  55. width: 0;
  56. outline-width: 0;
  57. cursor: default;
  58. /* reset bootstrap table style. for more info see: https://github.com/handsontable/handsontable/issues/224 */
  59. max-width: none;
  60. max-height: none;
  61. }
  62. .handsontable col {
  63. width: 50px;
  64. }
  65. .handsontable col.rowHeader {
  66. width: 50px;
  67. }
  68. .handsontable th,
  69. .handsontable td {
  70. border-top-width: 0;
  71. border-left-width: 0;
  72. border-right: 1px solid #CCC;
  73. border-bottom: 1px solid #CCC;
  74. height: 22px;
  75. empty-cells: show;
  76. line-height: 21px;
  77. padding: 0 4px 0 4px;
  78. /* top, bottom padding different than 0 is handled poorly by FF with HTML5 doctype */
  79. background-color: #FFF;
  80. vertical-align: top;
  81. overflow: hidden;
  82. outline-width: 0;
  83. white-space: pre-line;
  84. /* preserve new line character in cell */
  85. background-clip: padding-box;
  86. padding-top: 1px;
  87. }
  88. .handsontable td.htInvalid {
  89. background-color: #ff4c42 !important; /*gives priority over td.area selection background*/
  90. }
  91. .handsontable td.htNoWrap {
  92. white-space: nowrap;
  93. }
  94. .handsontable th:last-child {
  95. /*Foundation framework fix*/
  96. border-right: 1px solid #CCC;
  97. border-bottom: 1px solid #CCC;
  98. }
  99. .handsontable tr:first-child th.htNoFrame,
  100. .handsontable th:first-child.htNoFrame,
  101. .handsontable th.htNoFrame {
  102. border-left-width: 0;
  103. background-color: white;
  104. border-color: #FFF;
  105. }
  106. .handsontable th:first-child,
  107. .handsontable th:nth-child(2),
  108. .handsontable td:first-of-type,
  109. .handsontable .htNoFrame + th,
  110. .handsontable .htNoFrame + td {
  111. border-left: 1px solid #CCC;
  112. }
  113. .handsontable.htRowHeaders thead tr th:nth-child(2) {
  114. border-left: 1px solid #CCC;
  115. }
  116. .handsontable tr:first-child th,
  117. .handsontable tr:first-child td {
  118. border-top: 1px solid #CCC;
  119. }
  120. .ht_master:not(.innerBorderLeft):not(.emptyColumns) ~ .handsontable tbody tr th,
  121. .ht_master:not(.innerBorderLeft):not(.emptyColumns) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child {
  122. border-right-width: 0;
  123. }
  124. .ht_master:not(.innerBorderTop) thead tr:last-child th,
  125. .ht_master:not(.innerBorderTop) ~ .handsontable thead tr:last-child th,
  126. .ht_master:not(.innerBorderTop) thead tr.lastChild th,
  127. .ht_master:not(.innerBorderTop) ~ .handsontable thead tr.lastChild th {
  128. border-bottom-width: 0;
  129. }
  130. .handsontable th {
  131. background-color: #f0f0f0;
  132. color: #222;
  133. text-align: center;
  134. font-weight: normal;
  135. white-space: nowrap;
  136. }
  137. .handsontable thead th {
  138. padding: 0;
  139. }
  140. .handsontable th.active {
  141. background-color: #CCC;
  142. }
  143. .handsontable thead th .relative {
  144. padding: 2px 4px;
  145. }
  146. #hot-display-license-info {
  147. font-size: 10px;
  148. color: #323232 ;
  149. padding: 5px 0 3px 0;
  150. font-family: Helvetica, Arial, sans-serif;
  151. text-align: left;
  152. }
  153. /* plugins */
  154. /* row + column resizer*/
  155. .handsontable .manualColumnResizer {
  156. position: fixed;
  157. top: 0;
  158. cursor: col-resize;
  159. z-index: 110;
  160. width: 5px;
  161. height: 25px;
  162. }
  163. .handsontable .manualRowResizer {
  164. position: fixed;
  165. left: 0;
  166. cursor: row-resize;
  167. z-index: 110;
  168. height: 5px;
  169. width: 40px;
  170. }
  171. .handsontable .manualColumnResizer:hover,
  172. .handsontable .manualColumnResizer.active,
  173. .handsontable .manualRowResizer:hover,
  174. .handsontable .manualRowResizer.active {
  175. background-color: #34a9db;
  176. }
  177. .handsontable .manualColumnResizerGuide {
  178. position: fixed;
  179. right: 0;
  180. top: 0;
  181. background-color: #34a9db;
  182. display: none;
  183. width: 0;
  184. border-right: 1px dashed #777;
  185. margin-left: 5px;
  186. }
  187. .handsontable .manualRowResizerGuide {
  188. position: fixed;
  189. left: 0;
  190. bottom: 0;
  191. background-color: #34a9db;
  192. display: none;
  193. height: 0;
  194. border-bottom: 1px dashed #777;
  195. margin-top: 5px;
  196. }
  197. .handsontable .manualColumnResizerGuide.active,
  198. .handsontable .manualRowResizerGuide.active {
  199. display: block;
  200. z-index: 199;
  201. }
  202. .handsontable .columnSorting {
  203. position: relative;
  204. }
  205. .handsontable .columnSorting.sortAction:hover {
  206. text-decoration: underline;
  207. cursor: pointer;
  208. }
  209. .handsontable span.colHeader {
  210. display: inline-block;
  211. line-height: 1.1;
  212. }
  213. /* Arrow position */
  214. .handsontable span.colHeader.columnSorting::before {
  215. /* Centering start */
  216. top: 50%;
  217. margin-top: -6px; /* One extra pixel for purpose of proper positioning of sorting arrow, when `font-size` set to default */
  218. /* Centering end */
  219. padding-left: 8px; /* For purpose of continuous mouse over experience, when moving between the `span` and the `::before` elements */
  220. position: absolute;
  221. right: -9px;
  222. content: '';
  223. height: 10px;
  224. width: 5px;
  225. background-size: contain;
  226. background-repeat: no-repeat;
  227. background-position-x: right;
  228. }
  229. .handsontable span.colHeader.columnSorting.ascending::before {
  230. /* arrow up; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
  231. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFNJREFUeAHtzjkSgCAUBNHPgsoy97+ulGXRqJE5L+xkxoYt2UdsLb5bqFINz+aLuuLn5rIu2RkO3fZpWENimNgiw6iBYRTPMLJjGFxQZ1hxxb/xBI1qC8k39CdKAAAAAElFTkSuQmCC");
  232. }
  233. .handsontable span.colHeader.columnSorting.descending::before {
  234. /* arrow down; 20 x 40 px, scaled to 5 x 10 px; base64 size: 0.3kB */
  235. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAoCAMAAADJ7yrpAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADXRSTlMABBEmRGprlJW72e77tTkTKwAAAFJJREFUeAHtzjkSgCAQRNFmQYUZ7n9dKUvru0TmvPAn3br0QfgdZ5xx6x+rQn23GqTYnq1FDcnuzZIO2WmedVqIRVxgGKEyjNgYRjKGkZ1hFIZ3I70LyM0VtU8AAAAASUVORK5CYII=");
  236. }
  237. .htGhostTable .htCore span.colHeader.columnSorting:not(.indicatorDisabled)::after {
  238. content: '*';
  239. display: inline-block;
  240. position: relative;
  241. /* The multi-line header and header with longer text need more padding to not hide arrow,
  242. we make header wider in `GhostTable` to make some space for arrow which is positioned absolutely in the main table */
  243. padding-right: 20px;
  244. }
  245. /* Selection */
  246. .handsontable .wtBorder {
  247. position: absolute;
  248. font-size: 0;
  249. }
  250. .handsontable .wtBorder.hidden{
  251. display:none !important;
  252. }
  253. /* A layer order of the selection types */
  254. .handsontable .wtBorder.current {
  255. z-index: 10;
  256. }
  257. .handsontable .wtBorder.area {
  258. z-index: 8;
  259. }
  260. .handsontable .wtBorder.fill {
  261. z-index: 6;
  262. }
  263. .handsontable td.area,
  264. .handsontable td.area-1,
  265. .handsontable td.area-2,
  266. .handsontable td.area-3,
  267. .handsontable td.area-4,
  268. .handsontable td.area-5,
  269. .handsontable td.area-6,
  270. .handsontable td.area-7 {
  271. position: relative;
  272. }
  273. .handsontable td.area:before,
  274. .handsontable td.area-1:before,
  275. .handsontable td.area-2:before,
  276. .handsontable td.area-3:before,
  277. .handsontable td.area-4:before,
  278. .handsontable td.area-5:before,
  279. .handsontable td.area-6:before,
  280. .handsontable td.area-7:before {
  281. content: '';
  282. position: absolute;
  283. top: 0;
  284. left: 0;
  285. right: 0;
  286. bottom: 0;
  287. bottom: -100%\9; /* Fix for IE9 to spread the ":before" pseudo element to 100% height of the parent element */
  288. background: #005eff;
  289. }
  290. /* Fix for IE10 and IE11 to spread the ":before" pseudo element to 100% height of the parent element */
  291. @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  292. .handsontable td.area:before,
  293. .handsontable td.area-1:before,
  294. .handsontable td.area-2:before,
  295. .handsontable td.area-3:before,
  296. .handsontable td.area-4:before,
  297. .handsontable td.area-5:before,
  298. .handsontable td.area-6:before,
  299. .handsontable td.area-7:before {
  300. bottom: -100%;
  301. }
  302. }
  303. .handsontable td.area:before {
  304. opacity: 0.1;
  305. }
  306. .handsontable td.area-1:before {
  307. opacity: 0.2;
  308. }
  309. .handsontable td.area-2:before {
  310. opacity: 0.27;
  311. }
  312. .handsontable td.area-3:before {
  313. opacity: 0.35;
  314. }
  315. .handsontable td.area-4:before {
  316. opacity: 0.41;
  317. }
  318. .handsontable td.area-5:before {
  319. opacity: 0.47;
  320. }
  321. .handsontable td.area-6:before {
  322. opacity: 0.54;
  323. }
  324. .handsontable td.area-7:before {
  325. opacity: 0.58;
  326. }
  327. .handsontable tbody th.ht__highlight,
  328. .handsontable thead th.ht__highlight {
  329. background-color: #dcdcdc;
  330. }
  331. .handsontable tbody th.ht__active_highlight,
  332. .handsontable thead th.ht__active_highlight {
  333. background-color: #8eb0e7;
  334. color: #000;
  335. }
  336. /* fill handle */
  337. .handsontable .wtBorder.corner {
  338. font-size: 0;
  339. cursor: crosshair;
  340. }
  341. .handsontable .htBorder.htFillBorder {
  342. background: red;
  343. width: 1px;
  344. height: 1px;
  345. }
  346. .handsontableInput {
  347. border: none;
  348. outline-width: 0;
  349. margin: 0;
  350. padding: 1px 5px 0 5px;
  351. font-family: inherit;
  352. line-height: 21px;
  353. font-size: inherit;
  354. box-shadow: 0 0 0 2px #5292F7 inset;
  355. resize: none;
  356. /*below are needed to overwrite stuff added by jQuery UI Bootstrap theme*/
  357. display: block;
  358. color: #000;
  359. border-radius: 0;
  360. background-color: #FFF;
  361. /*overwrite styles potentionally made by a framework*/
  362. }
  363. .handsontableInputHolder {
  364. position: absolute;
  365. top: 0;
  366. left: 0;
  367. z-index: 104;
  368. }
  369. .htSelectEditor {
  370. -webkit-appearance: menulist-button !important;
  371. position: absolute;
  372. width: auto;
  373. }
  374. /*
  375. TextRenderer readOnly cell
  376. */
  377. .handsontable .htDimmed {
  378. color: #777;
  379. }
  380. .handsontable .htSubmenu {
  381. position: relative;
  382. }
  383. .handsontable .htSubmenu :after{
  384. content: '▶';
  385. color: #777;
  386. position: absolute;
  387. right: 5px;
  388. font-size: 9px;
  389. }
  390. /*
  391. TextRenderer horizontal alignment
  392. */
  393. .handsontable .htLeft{
  394. text-align: left;
  395. }
  396. .handsontable .htCenter{
  397. text-align: center;
  398. }
  399. .handsontable .htRight{
  400. text-align: right;
  401. }
  402. .handsontable .htJustify{
  403. text-align: justify;
  404. }
  405. /*
  406. TextRenderer vertical alignment
  407. */
  408. .handsontable .htTop{
  409. vertical-align: top;
  410. }
  411. .handsontable .htMiddle{
  412. vertical-align: middle;
  413. }
  414. .handsontable .htBottom{
  415. vertical-align: bottom;
  416. }
  417. /*
  418. TextRenderer placeholder value
  419. */
  420. .handsontable .htPlaceholder {
  421. color: #999;
  422. }
  423. /*
  424. AutocompleteRenderer down arrow
  425. */
  426. .handsontable .htAutocompleteArrow {
  427. float: right;
  428. font-size: 10px;
  429. color: #EEE;
  430. cursor: default;
  431. width: 16px;
  432. text-align: center;
  433. }
  434. .handsontable td .htAutocompleteArrow:hover {
  435. color: #777;
  436. }
  437. .handsontable td.area .htAutocompleteArrow {
  438. color: #d3d3d3;
  439. }
  440. /*
  441. CheckboxRenderer
  442. */
  443. .handsontable .htCheckboxRendererInput {
  444. display: inline-block;
  445. vertical-align: middle;
  446. }
  447. .handsontable .htCheckboxRendererInput.noValue {
  448. opacity: 0.5;
  449. }
  450. .handsontable .htCheckboxRendererLabel {
  451. cursor: pointer;
  452. display: inline-block;
  453. width: 100%;
  454. }
  455. /**
  456. * Handsontable in Handsontable
  457. */
  458. .handsontable .handsontable.ht_clone_top .wtHider {
  459. padding: 0 0 5px 0;
  460. }
  461. /**
  462. * Autocomplete Editor
  463. */
  464. .handsontable .autocompleteEditor.handsontable {
  465. padding-right: 17px;
  466. }
  467. .handsontable .autocompleteEditor.handsontable.htMacScroll {
  468. padding-right: 15px;
  469. }
  470. /**
  471. * Handsontable listbox theme
  472. */
  473. .handsontable.listbox {
  474. margin: 0;
  475. }
  476. .handsontable.listbox .ht_master table {
  477. border: 1px solid #ccc;
  478. border-collapse: separate;
  479. background: white;
  480. }
  481. .handsontable.listbox th,
  482. .handsontable.listbox tr:first-child th,
  483. .handsontable.listbox tr:last-child th,
  484. .handsontable.listbox tr:first-child td,
  485. .handsontable.listbox td {
  486. border-color: transparent;
  487. }
  488. .handsontable.listbox th,
  489. .handsontable.listbox td {
  490. white-space: nowrap;
  491. text-overflow: ellipsis;
  492. }
  493. .handsontable.listbox td.htDimmed {
  494. cursor: default;
  495. color: inherit;
  496. font-style: inherit;
  497. }
  498. .handsontable.listbox .wtBorder {
  499. visibility: hidden;
  500. }
  501. .handsontable.listbox tr td.current,
  502. .handsontable.listbox tr:hover td {
  503. background: #eee;
  504. }
  505. .ht_clone_top {
  506. z-index: 101;
  507. }
  508. .ht_clone_left {
  509. z-index: 102;
  510. }
  511. .ht_clone_top_left_corner,
  512. .ht_clone_bottom_left_corner {
  513. z-index: 103;
  514. }
  515. .ht_clone_debug {
  516. z-index: 103;
  517. }
  518. .handsontable td.htSearchResult {
  519. background: #fcedd9;
  520. color: #583707;
  521. }
  522. /*
  523. Cell borders
  524. */
  525. .htBordered{
  526. /*box-sizing: border-box !important;*/
  527. border-width: 1px;
  528. }
  529. .htBordered.htTopBorderSolid {
  530. border-top-style: solid;
  531. border-top-color: #000;
  532. }
  533. .htBordered.htRightBorderSolid {
  534. border-right-style: solid;
  535. border-right-color: #000;
  536. }
  537. .htBordered.htBottomBorderSolid {
  538. border-bottom-style: solid;
  539. border-bottom-color: #000;
  540. }
  541. .htBordered.htLeftBorderSolid {
  542. border-left-style: solid;
  543. border-left-color: #000;
  544. }
  545. .handsontable tbody tr th:nth-last-child(2) {
  546. border-right: 1px solid #CCC;
  547. }
  548. .handsontable thead tr:nth-last-child(2) th.htGroupIndicatorContainer {
  549. border-bottom: 1px solid #CCC;
  550. padding-bottom: 5px;
  551. }
  552. .ht_clone_top_left_corner thead tr th:nth-last-child(2) {
  553. border-right: 1px solid #CCC;
  554. }
  555. .htCollapseButton {
  556. width: 10px;
  557. height: 10px;
  558. line-height: 10px;
  559. text-align: center;
  560. border-radius: 5px;
  561. border: 1px solid #f3f3f3;
  562. -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  563. box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  564. cursor: pointer;
  565. margin-bottom: 3px;
  566. position: relative;
  567. }
  568. .htCollapseButton:after {
  569. content: "";
  570. height: 300%;
  571. width: 1px;
  572. display: block;
  573. background: #ccc;
  574. margin-left: 4px;
  575. position: absolute;
  576. /*top: -300%;*/
  577. bottom: 10px;
  578. }
  579. thead .htCollapseButton {
  580. right: 5px;
  581. position: absolute;
  582. top: 5px;
  583. background: #fff;
  584. }
  585. thead .htCollapseButton:after {
  586. height: 1px;
  587. width: 700%;
  588. right: 10px;
  589. top: 4px;
  590. }
  591. .handsontable tr th .htExpandButton {
  592. position: absolute;
  593. width: 10px;
  594. height: 10px;
  595. line-height: 10px;
  596. text-align: center;
  597. border-radius: 5px;
  598. border: 1px solid #f3f3f3;
  599. -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  600. box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  601. cursor: pointer;
  602. top: 0;
  603. display: none;
  604. }
  605. .handsontable thead tr th .htExpandButton {
  606. /*left: 5px;*/
  607. top: 5px;
  608. }
  609. .handsontable tr th .htExpandButton.clickable {
  610. display: block;
  611. }
  612. .collapsibleIndicator {
  613. position: absolute;
  614. top: 50%;
  615. transform: translate(0% ,-50%);
  616. right: 5px;
  617. border: 1px solid #A6A6A6;
  618. line-height: 10px;
  619. color: #222;
  620. border-radius: 10px;
  621. font-size: 10px;
  622. width: 10px;
  623. height: 10px;
  624. cursor: pointer;
  625. -webkit-box-shadow: 0 0 0 6px rgba(238,238,238,1);
  626. -moz-box-shadow: 0 0 0 6px rgba(238,238,238,1);
  627. box-shadow: 0 0 0 6px rgba(238,238,238,1);
  628. background: #eee;
  629. }
  630. .handsontable col.hidden {
  631. width: 0 !important;
  632. }
  633. .handsontable table tr th.lightRightBorder {
  634. border-right: 1px solid #E6E6E6;
  635. }
  636. .handsontable tr.hidden,
  637. .handsontable tr.hidden td,
  638. .handsontable tr.hidden th {
  639. display: none;
  640. }
  641. .ht_master,
  642. .ht_clone_left,
  643. .ht_clone_top,
  644. .ht_clone_bottom {
  645. overflow: hidden;
  646. }
  647. .ht_master .wtHolder {
  648. overflow: auto;
  649. }
  650. .handsontable .ht_master thead,
  651. .handsontable .ht_master tr th,
  652. .handsontable .ht_clone_left thead {
  653. visibility: hidden;
  654. }
  655. .ht_clone_top .wtHolder,
  656. .ht_clone_left .wtHolder,
  657. .ht_clone_bottom .wtHolder {
  658. overflow: hidden;
  659. }