index.css 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. @import url("../static/css/bootstrap.min.css");
  2. html {
  3. font-size: 14px;
  4. }
  5. body{
  6. color:#666;
  7. background: #f5f7fa;
  8. }
  9. #pageContainer {
  10. margin: 0 auto;
  11. }
  12. .mod-imagebase64 {
  13. margin:0 auto;
  14. padding-bottom: 0;
  15. }
  16. .tips{
  17. color:#aaa;
  18. margin: 10px 0;
  19. font-size: 12px;
  20. }
  21. table {
  22. width:100%;
  23. table-layout: fixed;
  24. }
  25. td {
  26. width:50%;
  27. vertical-align: top;
  28. }
  29. td .x-panel {
  30. height:460px;
  31. background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAIAAAB7tddWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1Q0VBNzA0MjEyMDUxMUUzODk2Q0JFM0Q1RjE4QkExQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1Q0VBNzA0MzEyMDUxMUUzODk2Q0JFM0Q1RjE4QkExQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAzNDA2MkY1MTIwMzExRTM4OTZDQkUzRDVGMThCQTFDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAzNDA2MkY2MTIwMzExRTM4OTZDQkUzRDVGMThCQTFDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K6izdgAAAk1JREFUeNrt2+uOgjAQhuG9/5tUPEs0nhU87hvNGoJY0C0yyNffBNuHdjpT8Oeidm0/IhCEIAQhCEEIQhCCEMT5fA6CoHVt7Xb7dDo1d0Yw/tZfE4QgBCEIQQjCHMThcBiPx51Op/XBljngl1pufvEaxH6//zCBUQjmwttd+SqI9rUJ4pK89XA4jKKoocEyCUG8aO6ukYSg5hOEIAQhCEH4gOCa+Xze7/e5vtvtTiaT4/HYOAj2116vl0psgiDYbrcGy7YSIQaDQWaSh0VJ88IixHK5dCS80+m0KRBhGDogWDIex8D8St7cVowYjUYOCGr5gr8YxzEhFjhiLUGXqfRY4JiGoPcOCMJH7m8xnmc3od5LVjqmIXa7nQOCPTX3HOy26TrK6tVqVQMIR5hgnrv7ysAe910HqHUILmBJp7pO7OBpe1G4tfV6bR3iHu0WiwWrfTab5aZSjMG9IjLXyGazqQHEq2eibxzD3V+FfwkEU8bLAWe9IVg1vk56awxB+ExN74ZCkCB5PPuvKwS5gN+XICYg6AQDI1lgv2TjzL2hOwGtKwQBj9KoeCpNj1PXfwMEWVNmt5gazxaRu1SvJYR7nRMLH4+kvIeG6iGKDInyIVliUCCU98a4GojiQ6IoIHeMoohFVOor9QogiPmVfCVgC4JnW8nXM+Ygytj5aglhtglCEIIQhCCMQVT1neVLh9qfeAlM+WQcgh5+AiKOY5vZ5H06FDkN8gBxO2gNw5C00s7UoCf0h1795xtY/e9TEIIQhCAEIQhBCEIQftovDwuUVV5nLjcAAAAASUVORK5CYII=) center 120px no-repeat;
  32. border:4px dashed #ddd;
  33. position: relative;
  34. text-align: center;
  35. margin-right: 10px;
  36. }
  37. td .x-panel .x-tips {
  38. color:#aaa;
  39. text-align: center;
  40. position: absolute;
  41. bottom: 30px;
  42. left: calc(50% - 112px);
  43. }
  44. .tips i{
  45. color: #454545;
  46. }
  47. #upload {
  48. font-size: 20px;
  49. background: #00b7ee;
  50. border-radius: 3px;
  51. line-height: 44px;
  52. height: 45px;
  53. padding: 0 30px;
  54. color: #fff;
  55. display: inline-block;
  56. margin: 5px auto 15px;
  57. cursor: pointer;
  58. box-shadow: 0 1px 1px rgba(0,0,0,.1);
  59. text-decoration: none;
  60. }
  61. #upload:hover {
  62. background: #00a2d4;
  63. }
  64. #preview {max-width: 260px;max-height: 260px;margin-top:50px;}
  65. form {display: none}
  66. #base64Result,#base64Input {
  67. height:460px;
  68. padding:4px;
  69. margin:0;
  70. resize:none;outline:none;
  71. background: #fcfcfc;
  72. border:1px solid #ddd;
  73. }
  74. .-e-x-footer {
  75. text-align:center;
  76. font-size:12px;
  77. margin-top:30px;
  78. color:#00c;
  79. padding:5px;
  80. display:none;
  81. }
  82. .x-result-info .x-title{
  83. color: #aaa;
  84. font-size: 12px;
  85. }
  86. #sizeOri,#sizeBase {
  87. color: #600;
  88. font-style: italic;
  89. }
  90. .mod-base64image .x-panel{
  91. margin-left: 40px;
  92. }
  93. #base64Input{
  94. background:#fff;
  95. }
  96. .x-xdemo {
  97. margin-left: 30px;
  98. font-size: 12px;
  99. color: blue;
  100. cursor: pointer;
  101. text-decoration: underline;
  102. -webkit-user-select: none;
  103. user-select: none;
  104. }
  105. .x-xdemo:hover {
  106. color: #cc8841;
  107. }
  108. /* 保持原有的顶部导航样式 */
  109. .x-switch {
  110. font-size: 14px;
  111. font-weight: 500;
  112. color: #2563eb;
  113. cursor: pointer;
  114. text-decoration: none;
  115. border: none;
  116. margin-left: 70px;
  117. white-space: nowrap;
  118. margin-right: auto;
  119. padding: 8px 16px;
  120. border-radius: 20px;
  121. background-color: #eff6ff;
  122. transition: all 0.2s ease;
  123. position: relative;
  124. display: inline-flex;
  125. align-items: center;
  126. box-shadow: 0 1px 2px rgba(37, 99, 235, 0.1);
  127. }
  128. .x-switch::before {
  129. content: '';
  130. display: inline-block;
  131. width: 18px;
  132. height: 18px;
  133. margin-right: 6px;
  134. background: url('../static/img/switch-mode.svg') no-repeat center center;
  135. background-size: contain;
  136. opacity: 0.8;
  137. transition: transform 0.3s ease;
  138. }
  139. .x-switch:hover {
  140. background-color: #dbeafe;
  141. color: #1d4ed8;
  142. text-decoration: none;
  143. box-shadow: 0 2px 4px rgba(37, 99, 235, 0.15);
  144. transform: translateY(-1px);
  145. }
  146. .x-switch:hover::before {
  147. transform: rotate(180deg);
  148. opacity: 1;
  149. }
  150. .x-error {
  151. margin: 0px 0px 10px 21px;
  152. padding-bottom: 10px;
  153. color:#f00;
  154. }
  155. /* 面板和标题栏样式 */
  156. .panel {
  157. background: #fff;
  158. border: 1px solid #ddd;
  159. border-radius: 4px;
  160. box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  161. }
  162. .panel-heading {
  163. background: #fff;
  164. border-bottom: 1px solid #ddd;
  165. padding: 10px 15px;
  166. }
  167. .panel-title {
  168. display: flex;
  169. align-items: center;
  170. justify-content: space-between;
  171. margin: 0;
  172. font-size: 14px;
  173. font-weight: normal;
  174. }
  175. .title-text-wrapper {
  176. display: flex;
  177. align-items: center;
  178. }
  179. .panel-title .x-a-high {
  180. color: #333;
  181. text-decoration: none;
  182. display: flex;
  183. align-items: center;
  184. font-size: 14px;
  185. }
  186. .panel-title .x-a-high:hover {
  187. color: #666;
  188. text-decoration: none;
  189. }
  190. .panel-title .x-a-high img {
  191. height: 16px;
  192. width: 16px;
  193. margin-right: 5px;
  194. vertical-align: middle;
  195. }
  196. .title-text-wrapper-text {
  197. margin-left: 5px;
  198. font-size: 14px;
  199. color: #333;
  200. }
  201. .x-switch {
  202. margin-left: 20px;
  203. font-size: 12px;
  204. color: #f00;
  205. cursor: pointer;
  206. padding: 3px 8px;
  207. border: 1px solid #f00;
  208. border-radius: 3px;
  209. text-decoration: none;
  210. user-select: none;
  211. transition: all 0.2s ease;
  212. }
  213. .x-switch:hover {
  214. background-color: #fff0f0;
  215. text-decoration: none;
  216. }
  217. .panel-title>a.x-other-tools {
  218. font-size: 12px;
  219. color: #666;
  220. cursor: pointer;
  221. text-decoration: none;
  222. display: flex;
  223. align-items: center;
  224. padding: 3px 0;
  225. transition: all 0.2s ease;
  226. margin-left: 15px;
  227. }
  228. .panel-title>a.x-other-tools .icon-plus-circle {
  229. font-size: 14px;
  230. margin-right: 3px;
  231. color: #666;
  232. transition: all 0.2s ease;
  233. }
  234. .panel-title>a.x-other-tools .tool-market-badge {
  235. background: #f5f7fa;
  236. color: #666;
  237. padding: 2px 6px;
  238. border-radius: 3px;
  239. margin-left: 5px;
  240. font-size: 12px;
  241. transition: all 0.2s ease;
  242. }
  243. .panel-title>a.x-other-tools:hover {
  244. color: #333;
  245. text-decoration: none;
  246. }
  247. .panel-title>a.x-other-tools:hover .icon-plus-circle,
  248. .panel-title>a.x-other-tools:hover .tool-market-badge {
  249. color: #333;
  250. }
  251. /* 主体布局 */
  252. .image-base64-layout,
  253. .base64-image-layout {
  254. display: flex;
  255. gap: 20px;
  256. padding: 20px;
  257. }
  258. .upload-section,
  259. .result-section,
  260. .input-section,
  261. .preview-section {
  262. flex: 1;
  263. }
  264. .section-title {
  265. font-size: 16px;
  266. color: #333;
  267. margin-bottom: 15px;
  268. font-weight: 500;
  269. }
  270. /* 上传区域样式 */
  271. .x-panel {
  272. height: 460px;
  273. background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAIAAAB7tddWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1Q0VBNzA0MjEyMDUxMUUzODk2Q0JFM0Q1RjE4QkExQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1Q0VBNzA0MzEyMDUxMUUzODk2Q0JFM0Q1RjE4QkExQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAzNDA2MkY1MTIwMzExRTM4OTZDQkUzRDVGMThCQTFDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAzNDA2MkY2MTIwMzExRTM4OTZDQkUzRDVGMThCQTFDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K6izdgAAAk1JREFUeNrt2+uOgjAQhuG9/5tUPEs0nhU87hvNGoJY0C0yyNffBNuHdjpT8Oeidm0/IhCEIAQhCEEIQhCCEMT5fA6CoHVt7Xb7dDo1d0Yw/tZfE4QgBCEIQQjCHMThcBiPx51Op/XBljngl1pufvEaxH6//zCBUQjmwttd+SqI9rUJ4pK89XA4jKKoocEyCUG8aO6ukYSg5hOEIAQhCEH4gOCa+Xze7/e5vtvtTiaT4/HYOAj2116vl0psgiDYbrcGy7YSIQaDQWaSh0VJ88IixHK5dCS80+m0KRBhGDogWDIex8D8St7cVowYjUYOCGr5gr8YxzEhFjhiLUGXqfRY4JiGoPcOCMJH7m8xnmc3od5LVjqmIXa7nQOCPTX3HOy26TrK6tVqVQMIR5hgnrv7ysAe910HqHUILmBJp7pO7OBpe1G4tfV6bR3iHu0WiwWrfTab5aZSjMG9IjLXyGazqQHEq2eibxzD3V+FfwkEU8bLAWe9IVg1vk56awxB+ExN74ZCkCB5PPuvKwS5gN+XICYg6AQDI1lgv2TjzL2hOwGtKwQBj9KoeCpNj1PXfwMEWVNmt5gazxaRu1SvJYR7nRMLH4+kvIeG6iGKDInyIVliUCCU98a4GojiQ6IoIHeMoohFVOor9QogiPmVfCVgC4JnW8nXM+Ygytj5aglhtglCEIIQhCCMQVT1neVLh9qfeAlM+WQcgh5+AiKOY5vZ5H06FDkN8gBxO2gNw5C00s7UoCf0h1795xtY/e9TEIIQhCAEIQhBCEIQftovDwuUVV5nLjcAAAAASUVORK5CYII=) center 120px no-repeat;
  274. border:4px dashed #ddd;
  275. position: relative;
  276. text-align: center;
  277. border-radius: 4px;
  278. }
  279. .upload-instructions {
  280. position: absolute;
  281. bottom: 30px;
  282. left: 0;
  283. right: 0;
  284. text-align: center;
  285. }
  286. .drag-drop-text {
  287. display: block;
  288. margin-top: 10px;
  289. color: #999;
  290. }
  291. #upload {
  292. font-size: 16px;
  293. background: #00b7ee;
  294. border-radius: 4px;
  295. line-height: 40px;
  296. height: 40px;
  297. padding: 0 25px;
  298. color: #fff;
  299. display: inline-block;
  300. margin: 5px auto;
  301. cursor: pointer;
  302. box-shadow: 0 2px 4px rgba(0,0,0,.1);
  303. text-decoration: none;
  304. transition: all 0.3s ease;
  305. }
  306. #upload:hover {
  307. background: #00a2d4;
  308. box-shadow: 0 2px 8px rgba(0,0,0,.2);
  309. }
  310. #preview {
  311. max-width: 260px;
  312. max-height: 260px;
  313. margin-top: 50px;
  314. }
  315. /* 结果区域样式 */
  316. .mod-textarea {
  317. height: 460px;
  318. padding: 10px;
  319. margin: 0;
  320. resize: none;
  321. outline: none;
  322. background: #fcfcfc;
  323. border: 1px solid #ddd;
  324. border-radius: 4px;
  325. font-family: monospace;
  326. font-size: 13px;
  327. }
  328. .x-result-info {
  329. margin-top: 10px;
  330. }
  331. .x-result-info .x-item {
  332. margin: 5px 0;
  333. }
  334. .x-result-info .x-title {
  335. color: #666;
  336. font-size: 13px;
  337. }
  338. #sizeOri, #sizeBase {
  339. color: #600;
  340. font-style: italic;
  341. }
  342. /* 提示文本样式 */
  343. .tips {
  344. color: #999;
  345. margin: 10px 0;
  346. font-size: 13px;
  347. line-height: 1.6;
  348. }
  349. .tips i {
  350. color: #454545;
  351. font-style: normal;
  352. font-weight: 500;
  353. }
  354. /* 错误提示样式 */
  355. .x-error {
  356. margin: 10px 20px;
  357. padding: 10px;
  358. color: #f00;
  359. background: #fff0f0;
  360. border-radius: 4px;
  361. font-size: 13px;
  362. }
  363. /* 隐藏表单 */
  364. form {
  365. display: none;
  366. }
  367. /* Base64转图片模式样式 */
  368. #base64Image {
  369. max-width: 100%;
  370. max-height: 460px;
  371. margin: 0 auto;
  372. display: block;
  373. }
  374. /* Style for the "Explore More Tools" button */
  375. .panel-title>a.x-other-tools {
  376. margin: 0; /* Reset margin */
  377. font-size: 12px; /* Slightly smaller */
  378. cursor: pointer;
  379. text-decoration: none;
  380. -webkit-user-select: none;
  381. user-select: none;
  382. color: #495057; /* Grey text */
  383. background-color: #f8f9fa; /* Light grey background */
  384. padding: 6px 12px; /* Adjusted padding */
  385. border-radius: 6px; /* Standard rounded corners */
  386. border: 1px solid #dee2e6; /* Match border color */
  387. transition: all 0.2s ease;
  388. display: inline-flex;
  389. align-items: center;
  390. white-space: nowrap;
  391. }
  392. .panel-title>a.x-other-tools .icon-plus-circle {
  393. display: inline-block;
  394. width: 14px; /* Slightly smaller icon */
  395. height: 14px;
  396. background: url(../static/img/plus-circle.svg) no-repeat center center;
  397. background-size: contain;
  398. margin-right: 4px;
  399. }
  400. .panel-title>a.x-other-tools .tool-market-badge {
  401. display: inline-block;
  402. background-color: #007bff; /* Match theme blue */
  403. color: white;
  404. padding: 2px 7px;
  405. border-radius: 4px; /* Slightly less round */
  406. margin-left: 6px;
  407. font-size: 11px; /* Smaller badge text */
  408. font-weight: 500;
  409. }
  410. .panel-title>a.x-other-tools:hover {
  411. color: #212529;
  412. background-color: #e9ecef;
  413. border-color: #ced4da;
  414. box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  415. transform: none; /* Remove translateY */
  416. }