handsontable.css 15 KB

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