handsontable.css 16 KB

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